浮動小数点精度の問題を2019-06-03js

多くの場合、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で再現

おすすめ

転載: blog.csdn.net/weixin_33912638/article/details/91050496