Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
クラスMathの静的メソッドround()で、理解できないことに気づきました。
Math.round(0.4999999999999999); // is 0 Math.round(0.49999999999999999); // is 1
なんで?
0.49999999999999999有効数字が多すぎて、1つのdouble変数ですべてを格納することはできません。したがって、暗黙的な丸めはコンパイル中に発生します。を呼び出している時点Math.round()では、引数はすでに0.5です(自分で確認してください:0.49999999999999999 == 0.5yields true)。
0.49999999999999999
double
Math.round()
0.49999999999999999 == 0.5
true