誰かが 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 を取得できます。
完全なテスト コード: