我有一个小问题,我有一些代码可以从给定的数据集计算平均值,我在几台不同的计算机上执行此操作(一些使用 linux,一些使用 Windows,一些 32 位和其他 64 位),但是当我观察数据库结果,一些应该相等的值略有不同。
这对我的程序没有任何影响,但我想知道为什么会这样,我的印象是具有相同单词长度的浮点运算应该产生相同的结果(我显然错了)。
这是我写来检查的一个小示例代码:
public class Test{
public static void main(String... args){
double counter = 0, value = 1./10;
for (int i = 0; i < 1000000; i++){
counter += value;
}
System.out.println(counter);
}
}
它基本上计算 1000000 / 10,我知道结果并不准确,但在某些电脑中,它打印的数字略小于 100000,而在其他情况下,它打印的数字略大。