私は小さな問題を抱えていますが、データの平均値を計算するコードをいくつか持っています。いくつかの異なるコンピュータ(Linuxでいくつか、いくつかの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を求めるが、一部のPCにそれがある数を表示しますそれ以外の場合はわずかに大きな数字が印刷されます。
strictfpは** java **キーワードですか?私はそれについて聞いたことがありません... – user1335148
うわー、私はこのような長い時間Javaをやっていると私はJavaについて多くを読んだが、私はこのキーワードを聞いたことがない。私を啓発してくれてありがとう。 ^^ –
@ user1335148はい、strictfpはJavaのキーワードです! – Fido