ホームページ >ウェブフロントエンド >jsチュートリアル >javascript_javascriptスキルにおけるfloat演算精度の分析例

javascript_javascriptスキルにおけるfloat演算精度の分析例

WBOY
WBOYオリジナル
2016-05-16 18:20:491449ブラウズ

誰かが JS の質問をしました:

コードをコピー コードは次のとおりです:

var i = 0.07;
var r = i*100;
alert(r);

情報を確認すると、実際には次のようになります。変数を格納する場合、数値型と浮動小数点型の区別はありませんが、一律に浮動小数点数として格納されます。 JavaScript は、IEEE 754-2008 標準で定義された 64 ビット浮動小数点形式を使用して、IEEE 754 の定義に従います: http://en.wikipedia.org/wiki/IEEE_754-2008
の長さ。 10 進数 64 に対応する整数は 10、小数部の長さは 16 であるため、デフォルトの計算結果は「7.0000000000000001」になります。最後の小数点が 0 の場合、1 を有効桁フラグとして受け取ります。

同様に、1/3 の結果は 0.3333333333333333 になるはずだと想像できます。
では、この値を修正するにはどうすればよいでしょうか?
次のメソッドを使用できます:

1. parseInt
var r4=parseInt(i*100);


2. .round
var r2=Math.round((i*100)*1000)/1000;

上記の 2 つのメソッドはどちらも 7 を取得できます。
完全なテスト コード:

コードをコピー コードは次のとおりです。
🎜>
テスト スクリプト