我有一个小问题,我有一些代码来计算一组给定数据的平均值,我是从几台不同的计算机(有些用linux,有些有windows,有些32位,有些是64位)来做的,但是当我观察数据库结果应该相等的一些值略有不同.
这对我的程序没有任何影响,但我想知道为什么会这样,我的印象是使用相同单词lenght的浮点运算应该产生相同的结果(我显然是错的).
这是我编写的一个小示例代码,用于检查:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
它基本上计算1000000/10,我知道结果不准确,但在某些pcs中它会打印一个略小于100000的数字,而在其他情况下它打印的数字略大一些.
java ×1