最初の写真:
何が起こっているのですか?
理由: js は 10 進数の計算に 2 進数を使用します
まず、10 進数を 2 進数に変換する方法を見てください:
10 進数の整数の桁は、2 進数の整数の桁であり、10 進数の小数桁です。は 2 進数の 10 進数です
10 進数 111.4 (10) がある場合は、それを計算してみましょう:
まず小数点 0.4 を取得し、それに対して「2 による乗算」メソッドを実行します
0.4*2= 0.8
0.4*2 = integer wite as yes 1 get
0= 0.8 get 0 | *2 = 1.2 Take 1 |
0.2*2 = 0.4 Take 0 |
0.01100110... (ループ0110) 整数を2で割る方法は書きません。 質問では、2.6+2.6+2.6=7.800000000001となります。JavaScriptで10進数を計算する場合、対応する2進法では、一部の小数は2進法に完全に変換できません。最初のエラーが発生します。すべての 10 進数が 2 進数に変換された後、2 進数システム間の演算が実行されて 2 進数の結果が得られます。次に、バイナリの結果が 10 進数に変換されます。通常、ここで 2 番目のエラーが発生します。 解決策: (7.8).toFixed(2)=7.80; を保持する小数点以下の桁数を指定します。この方法では精度が失われる可能性があります。この追加をオンラインでカスタマイズする方法もあります。
以上がJavaScript チュートリアルの小数計算の問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。