開発プロセス中、小数点以下 2 桁を保持するなど、小数点の形式を調整する必要が生じることがよくあります。方法もごく一般的で、メモは以下の通り。
最初の方法は math.round を使用することです
varoriginal=28.453
1) //「オリジナル」を小数第 2 位に四捨五入します
var result=Math.round(original) * 100)/100; // 28.45 を返します
2) // 「オリジナル」を小数第 1 位に丸めます
var result=Math.round(original*10)/10; // 28.5 を返します
次に、js1.5 以降では toFixed(x) を使用できます。これにより、小数点以下 x 桁を切り取る数値を指定できます
3) //「オリジナル」を小数点第 2 位に丸めます
var result =original.toFixed( 2); // 28.45 を返します
4) // 「オリジナル」を小数第 1 位に四捨五入します
var result=original.toFixed(1) // 28.5 を返します
上記の両方 この方法は最も一般的ですが、小数点以下 2 桁を保持するなど、一部の特殊な要件を満たすことはできません。小数点以下 2 桁未満の場合はゼロが追加されます。この時点で、3 番目の方法があります。
3 番目のタイプは変換関数です。このコードは海外のフォーラムからのものです。
functionroundNumber(number,decimals) {
var newString;// 新しい四捨五入された数値
小数 = Number(小数);
if (小数 newString = (Math.round(number)).toString();
} else {
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(カットオフ,カットオフ 1));
カットオフ -= 1; >}
}
}
d1 = 1;
}
if (d1 == 10) {
numString = numString.substring(0, numString.lastIndexOf("." ));
varroundedNum = Number(numString) 1;
newString =roundedNum.toString() '.';
} else {
newString = numString.substring(0,cutoff) toString() ;
}
}
if (newString.lastIndexOf(".") == -1) {// これを新しい文字列に再度実行します
newString = ".";
}
var decs = (newString.substring(newString.lastIndexOf(".") 1)).length;
for(var i=0;i//var newNumber = Number(newString);// 必要に応じて数値にします
document.roundform.roundedfield.value = newString; // 結果をフォーム フィールドに出力します (変更はあなたの目的)
}
5) //「オリジナル」を小数第 2 位に四捨五入します
var result=original.toFixed(2) // 28.45 を返します
6) // "original" を小数第 1 位に四捨五入します
var result=original.toFixed(1) // 28.5 を返します
varoriginal=28.4
var result=original.toFixed(2); ; // 28.40 を返します