javascript 小数の計算結果がおかしくなる

javascript 小数の計算結果がおかしくなる

javascriptで、少数の計算を行うと結果がおかしくなることが多いので、正しく計算するサンプルコードを記述してます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 84.0.4147.105

小数の計算

例えば、「0.1 + 0.1」であれば正しい結果になりますが、

「0.1 + 0.1 + 0.1」になると

これは、javascriptのIEEE 754(浮動小数点数演算標準) という規格により起こる問題で、10のn倍して整数に戻して計算すれば大抵改善されますが、ここでも問題が発生します。

問題を解消するには、以下のように整数部と小数部に分けて、整数への変換を行う必要があります。

実際に、「 77.99 – 0.9 」の計算を行には、以下のようにする必要があります。