-1

ばかげた質問があります。これが 488.16 ではなく 488.15999999999997 を与える理由

double dbl = 427.14 + 61.02;
System.out.println(dbl);

これだけの精度(通貨関連のロジックなど)を考えるとBigDecimalを使わないといけないと聞きました。しかし、私はこの背後にあるものを知りたいです。

4

2 に答える 2

1

それは「正常な」動作です。一般に、10 進数の値はコンピューターでは正確に表すことができないため、小さなエラーが忍び寄り始めることを覚えておいてください。What Every Computer Scientist Should Know About Floating-Point Arithmeticを見てみましょう。これは、10 進数値を扱うコードを書く人にとって必読です。

于 2013-08-06T14:04:52.753 に答える
1

Java Rounding Double の問題 を解決する方法

于 2013-08-06T14:05:45.830 に答える