- 締切済み
Javaの計算結果がおかしい
javaの勉強をしていますが、以下のプログラム(double型の配列データを全件合計)を実行するとおかしな結果になります。 どなたか、理由をご教示願いただきたく。 package exec; public class Error { public static void main(String[] args) { double[] data = {12.3,12.2,12.3,13.0,12.8,13.0}; double total = 0.0; for (double dd : data){ total += dd; System.out.println(total); } } } 実行結果は、次のように正しくありません。 12.3 24.5 37.5 50.3 62.599999999999994 75.6 ちなみに、double[] data = {12.3,12.2,13.0,12.8,13.0,12.3}; のように2つめの12.3を最後にすると 12.3 24.5 37.5 50.3 63.3 75.6 と正しい集計をします。 環境はWindows7(64bit)、Eclipse 3.7(junoでも同じ結果)、JDK1.7 です。 以上、よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 中村 拓男(@tknakamuri)
- ベストアンサー率35% (674/1896)
回答No.3
お礼
ありがとうございます。 お礼が遅くなり申し訳ありません。 2進法の誤差と理解しました。