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/39e482c008d605a5b5f9180e98756d084baf2b67/height=288;version=1;width=512/https%3A%2F%2Fblog.asial.co.jp%2Fogp-logo.jpg)