JS で小数点以下 N 桁を保持したい場合は、通常 toFixed 関数を使用します
<スクリプト言語="javascript">
document.write("
小数点以下 2 桁を保持する JS の例
");
var a=2.1512131231231321;
document.write("元の値: " a "
");
document.write("小数点以下 2 桁:" a.toFixed(2) "
小数点以下 4 桁" a.toFixed(4));
丸め変換関数は次のとおりです。
コードをコピーします
for(;e
return Math.round(v*t)/t;
}
パラメータ内:
v は変換される値を表します
e は保持される桁数を表します
関数内の 2 つの for、これが重要なポイントです。
最初の for は、小数点の右側の状況、つまり小数点の右側の桁数を保持するためのものです。
2 番目の for は、小数点の左側の状況、つまり、小数点の左側の何桁が保持されるかを示します。
for の機能は t の値、つまり v をどれだけ拡大または縮小するかの倍数 (倍数 = t) を計算することです。
ここでは for の 2 つの機能、条件判定とカウンタ蓄積 (ループ) を利用しています。
e が条件を満たす場合は For が継続し、e が累積されるたびに (e が累積されるたびに、ループを満たさない for の条件を作成します)、t の値も計算されます。
最後に、ネイティブ丸め法を使用して拡大/縮小された v の結果を計算し、その結果を正しい倍数に拡大/縮小します
次の 2 桁の予約番号の例
コードをコピーします
var f = parseFloat(x);
if (isNaN(f)) {
に戻る
}
f = Math.round(x*100)/100;
を返します。
}
//システムは小数点以下 2 桁を保持します (2 など)。2 の後に 00 が追加されます。つまり、2.00
関数 toDecimal2(x) {
var f = parseFloat(x);
if (isNaN(f)) {
false を返します
}
var f = Math.round(x*100)/100;
var s = f.toString();
var rs = s.indexOf('.');
if (rs
rs = s.length
s = '.';
}
while (s.length
s = '0';
}
を返します。
}
関数 fomatFloat(src,pos){
return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);
}
//丸め
alert("小数点以下 2 桁を保持します:" toDecimal(3.14159267));
alert("小数点以下 2 桁を強制的に保持する:" toDecimal2(3.14159267));
alert("小数点以下 2 桁を保持します:" toDecimal(3.14559267));
alert("小数点以下 2 桁を強制的に保持する:" toDecimal2(3.15159267));
alert("小数点以下 2 桁を保持します:" fomatFloat(3.14559267, 2));
alert("小数点以下 1 桁を保持します:" fomatFloat(3.15159267, 1));
//丸め
alert("小数点以下 2 桁を保持:" 1000.003.toFixed(2));
alert("小数点以下 1 桁を保持:" 1000.08.toFixed(1));
alert("小数点以下 1 桁を保持:" 1000.04.toFixed(1));
alert("小数点以下 1 桁を保持:" 1000.05.toFixed(1));
//科学的記法
アラート(3.1415.toExponential(2));
アラート(3.1455.toExponential(2));
アラート(3.1445.toExponential(2));
アラート(3.1465.toExponential(2));
アラート(3.1665.toExponential(1));
// n 桁までの精度 (n 桁を除く)
alert("小数点第 2 位までの精度" 3.1415.toPrecision(2));
alert("小数点第 3 位までの精度" 3.1465.toPrecision(3));
alert("小数点第 2 位までの精度" 3.1415.toPrecision(2));
alert("小数点第 2 位までの精度" 3.1455.toPrecision(2));
alert("小数点第 5 位までの精度" 3.141592679287.toPrecision(5));
上記はすべて非常に簡単なコードではないでしょうか?