JavaScriptで数値を小数点以下2桁まで切り上げたい。SO に関する多くの投稿で、.toFixed
メソッドの動作はさまざまなブラウザーでは予測できないと言っているのを見つけました。
そして、例外なく受け入れられている多くの場所でこの解決策を見つけました
Math.round(yournumber * 100 ) / 100
しかし、私は正しいが、いくつかの間違った結果もこの計算から見つけました
Math.round( 1.27532423 * 100 ) / 100 = 1.28 // this seems correct
Math.round( 1.275 * 100 ) / 100 = 1.27 // as I understand it should also 1.28
Math.round( 1.276 * 100 ) / 100 = 1.28
何かが足りないのでしょうか、それとも私の理解が正しくありませんか?
編集
ちょうどそれを見つけた
1.275 * 100
が127.49999999999999
返され、それが理由です。返された場合127.5
、正しい結果が得られます。
しかし、なぜこれを返すのですか127.49999999999999
????