開発プロセス中に、小数点以降の2つの小数点を保持するなど、調整する必要がある形式に遭遇することがよくあります。この方法も非常に一般的です。以下に注意してください。
最初のものは、math.roundを使用することです
var original = 28.453
1)// 2つの小数に「元の」ラウンド
var result = math.round(original*100)/100; // 28.45を返します
2)// 1進数から1進数までの「元」
var result = math.round(original*10)/10; // 28.5を返します
2番目のタイプJS1.5以下は、Tofixed(x)を使用して、小数点以降にx位置を傍受する数値を指定できます。
3)// 2つの小数に「元の」ラウンド
var result = original.tofixed(2); // 28.45を返します
4)// 1進数から1進数までの「元」
var result = original.tofixed(1); // 28.5を返します
上記の2つの方法は最も一般的ですが、特定の特別な要件を満たすことはできません。たとえば、小数点後に2つの小数点を保持します。 2桁未満の場合は、ゼロを補います。現時点では、3番目の方法があります。
3番目のタイプは変換関数です。このコードは外国フォーラムからのものです。
コードコピーは次のとおりです。
関数roundNumber(number、decimals){
var Newstring; //新しい丸みを帯びた番号
Decimals = number(decimals);
if(decimals <1){
newstring =(math.round(number))。toString();
} それ以外 {
var numstring = number.toString();
if(numstring.lastindexof( "。")== -1){//小数点がない場合
numstring += "。"; //最後に1つ与えます
}
var cutoff = numstring.lastindexof( "。") + decimals; //数字を切り捨てるポイント
var d1 = number(numstring.substring(cutoff、cutoff+1)); //最後に終わる最後の小数点の値
var d2 = number(numstring.substring(cutoff+1、cutoff+2)); //次の小数、最後の小数
if(d2> = 5){//まとめる必要がありますか?そうでない場合、文字列は切り捨てられます
if(d1 == 9 && cutoff> 0){//最後の数字が9の場合、新しいカットオフポイントを見つけます
while(cutoff> 0 &&(d1 == 9 || isnan(d1))){
if(d1!= "。"){
カットオフ - = 1;
d1 = number(numstring.substring(cutoff、cutoff+1));
} それ以外 {
カットオフ - = 1;
}
}
}
D1 += 1;
}
if(d1 == 10){
numstring = numstring.substring(0、numstring.lastindexof( "。"));
var roundednum = number(numstring) + 1;
newstring = roundednum.toString() + '。';
} それ以外 {
NewString = numstring.substring(0、cutoff) + d1.tostring();
}
}
if(newstring.lastindexof( "。")== -1){//これをもう一度やり直して、新しい文字列に
NewString += "。";
}
var decs =(newstring.substring(newstring.lastindexof( "。")+1))。length;
for(var i = 0; i <decimals-decs; i ++)newtring+= "0";
特定
document.roundform.roundedfield.value = newstring; //結果をフォームフィールドに出力します(目的のために変更)
}
5)// 2つの小数に「元の」ラウンド
var result = original.tofixed(2); // 28.45を返します
6)// 1進数から1進数までの「元」
var result = original.tofixed(1); // 28.5を返します
var original = 28.4
var result = original.tofixed(2); // 28.40を返します