ホームページ >ウェブフロントエンド >jsチュートリアル >小数点以下 N 桁を保持する js コードを実装する_javascript スキル

小数点以下 N 桁を保持する js コードを実装する_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 16:31:231281ブラウズ

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));



丸め変換関数は次のとおりです。

コードをコピーします

コードは次のとおりです: 関数round(v,e){ var t=1; for(;e>0;t*=10,e--);
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 桁の予約番号の例

コードをコピーします

コードは次のとおりです: <スクリプトタイプ="text/javascript"> //小数点以下 2 桁を保持します //関数: 浮動小数点数を小数点第 2 位に丸めます 関数 toDecimal(x) {
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));



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