多くの場合、JS + 0.1 0.2!0.3 ==場合に遭遇し、このような状況では、原因の精度の問題を抱えて得た浮動小数点計算結果にあります
コンピュータ記憶データは、すべてのデータは、バイナリファイルに保存されているが、一部の小数を正確バイナリで表現することができないがあるので、浮動小数点演算の精度の問題が発生しますされています
コンピュータのために、バイナリを追加することによって2つの数字の間の時間は、添加のみを表示された結果は10進数形式で完了し、数が倍精度IEEE 754の64ビットによって示されるJS
バイナリプロセスに0.1変換
* 2 0.1 = 0.2 - - - - - - - - - - 0を取ります
* 2 0.2 = 0.4 - - - - - - - - - - 0を取ります
* 2 0.4 = 0.8 - - - - - - - - - - 0を取ります
0.8 * 2 = 1.6 - - - - - - - - - - テイク1
0.6×2 = 1.2 - - - - - - - - - - テイク1
* 2 0.2 = 0.4 - - - - - - - - - - 0を取ります
----------------
これは、小数部分を見つけるためにカウントされます、その後、ある飲み続ける方法を0に等しくないので、バイナリはない方法0.1の正確な表現ではありません。
主に以下の方法で、この動作のどの結果
十進整数を変換し、結果は小数として表示されます
ます。https://www.jianshu.com/p/6f44313abd92で再現