我遇到了一個小問題,我有一些代碼可以從給定的一組數據中計算出一個平均值,我從幾臺不同的計算機上執行此操作(一些使用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