我有一个计算平均值的方法
Note
上课:
private Double moyenneFinale;
@Column(name = "moyenne_finale")
public Double getMoyenneFinale() {
return this.moyenneFinale;
}
public void setMoyenneFinale(Double moyenneFinale) {
this.moyenneFinale = moyenneFinale;
}
类calBean
private double result;
public double moyenneFinale;
public calNote {
result=0.0
result= ((100 * 20)/100)/45;
moyenneFinale=result;
note.setMoyenneFinale(moyenneFinale);
}
//getter and setter
结果应为0.44 但在数据库中记录的给定值为0.0 如果我做+1,那将是1.0
答案 0 :(得分:2)
((100 * 20)/100)/45
处的所有数字文字都是整数,因此每个操作执行整数运算而不是浮点指针算法,最后在赋值操作时将结果转换为double
。
您应该将至少一个文字更改为100.0
,20.0
,45.0
,...
答案 1 :(得分:1)
排队
result= ((100 * 20)/100)/45;
您在整数上使用运算符 / 。在整数上使用时,运算符 / 表现为“ DIV ”(结果整数)。示例:10/4 = 2,但10.0 / 4 = 2.5,10 / 4.0 = 2.5,10.0 / 4.0 = 2.5。
选项包括:
将数字设置为100.0,20.0,100.0和45.0。 (只需将第一个设置为100.0就足够了)。
result= ((100.0 * 20)/100)/45;
在数字上使用强制转换。 (双)100。
result= (((double)100 * 20)/100)/45;
或者在等式之前加1.0 *;
result= 1.0*((100 * 20)/100)/45;
首先,在你的情况下,第一种方法是最好的,如果给出整数x,y,z,t,你的结果是((x * y)/ z)/ t;