ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript チュートリアルの小数計算の問題

JavaScript チュートリアルの小数計算の問題

巴扎黑
巴扎黑オリジナル
2017-09-11 11:47:511811ブラウズ

最初の写真:

何が起こっているのですか?

理由: 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。