我正在尝试用Java实现一个简单的方程式,但是由于操作符的优先级,我仍然无法理解,显然会一直得到错误的答案。
等式是:
NewMean =((N-1)/ N)* OldMean +(Xn / N)
在一个简单的示例中: N = 6; OldMean = 6; Xn = 16
所以, NewMean = 5/6 * 6 + 16/6 = 7.6667 (正确答案)
但是在Java的代码实现中,我得到了错误的答案(2.6665):
double NewMean = ((N-1)/N)*oldMean + (Xn/N);
答案 0 :(得分:5)
如果N
变量的类型为int
,则((N-1) / N)
使用整数除法计算,并将5/6舍入为0。将N
更改为浮点型-点类型,您应该会得到正确的答案。