我遇到了一个小问题,我有一些代码可以从给定的一组数据中计算出一个平均值,我从几台不同的计算机上执行此操作(一些使用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);
}
}
它基本上计算10分之1000000,我知道结果不会是准确的,但在某些个它打印一个数字,略低于100000,而在其他情况下,它打印的数字稍大一些。
是strictfp一个** java **关键字吗?我从来没有听说过它... – user1335148 2012-04-15 22:48:50
哇,我做了很长时间的Java,我读了很多关于Java,但我从来没有听说过这个关键字。谢谢你的启发。 ^^ – 2012-04-15 22:53:25
@ user1335148是的,strictfp是一个Java关键字! – Fido 2012-04-15 22:54:09