重複の可能性:
浮動小数点数の精度の問題への対処
一方、99.99 * 0.01 = 0.99
明らかに、これは古くからある浮動小数点の丸めの問題ですが、この場合の丸め誤差はかなり大きいように思えます。つまり、結果が 0.99990000001 または同様の「近い」結果になると予想していた可能性があるということです。
記録として、JavaVM と .Net 環境で同じ答えを得ました。
重複の可能性:
浮動小数点数の精度の問題への対処
一方、99.99 * 0.01 = 0.99
明らかに、これは古くからある浮動小数点の丸めの問題ですが、この場合の丸め誤差はかなり大きいように思えます。つまり、結果が 0.99990000001 または同様の「近い」結果になると予想していた可能性があるということです。
記録として、JavaVM と .Net 環境で同じ答えを得ました。
0.9998999999999999 があなたにとって十分に近くないのはなぜですか (そして 0.9999000000000001 は良いです)
腹筋 (0.9999 - 0.9998999999999999) == 腹筋 (0.9999 - 0.9999000000000001)
浮動小数点エラーです。(多くの) 詳細については、このウィキペディアの記事を参照してください。decimal
正確な分数結果が必要な場合はa を使用します (ここを参照)。