var oldValue, newValue, diff; oldValue = 67; newValue = 66.9; diff = oldValue - newValue; diff = Math.floor(diff * 10) / 10; // 小数点第2位以下切り捨て console.log("今日は" + diff + "kgやせました!"); ファッ!? 0.1kg痩せたはずが、0kgと表示されてしまいました。 たかだか100gとはいえ、こんな表示になったらガックリきますね。 一行ずつ値を追っていくとわかるのですが、4行目で減算した時点でdiffの値が “0.09999999999999432” とズレてしまっています。 これはJavaScriptがIEEE 754という規格に従って実装されているためです。 つまり、この計算結果はJavaScriptの仕様なのでJavaSc
![JavaScriptによる小数計算の誤差を無くす](https://cdn-ak-scissors.b.st-hatena.com/image/square/fb82e018058b1db46e904d436ec4d1ed4e27d2c4/height=288;version=1;width=512/https%3A%2F%2Fblog.asial.co.jp%2Fwp-content%2Fuploads%2F2022%2F07%2Fdefault.png)