1

クラスMathの静的メソッドround()で、理解できないことに気づきました。

Math.round(0.4999999999999999);  // is 0
Math.round(0.49999999999999999); // is 1

なんで?

4

1 に答える 1

14

0.49999999999999999有効数字が多すぎて、1つのdouble変数ですべてを格納することはできません。したがって、暗黙的な丸めはコンパイル中に発生します。を呼び出している時点Math.round()では、引数はすでに0.5です(自分で確認してください:0.49999999999999999 == 0.5yields true)。

于 2013-02-16T18:58:41.410 に答える