ToFixed方法は書き換えて、toFixed 4は5を捨てて数値のとても小さい精度の問題に入ります.
先にコードを書き換えます.
2、tofixedで小数点を使った後、0の数字は無視されています.0を小数位として残していません.
関連記事:
jsは数字を処理して2位の小数を保留して、強制的に2位の小数を保留して足りないで補充します.
数の書式設定、書式の数値は2桁の小数点を保持し、書式の数値は指定的にn位の小数点を保留します.
js数字金額を大文字に変換
Number.prototype.toFixed = function(s) {
var changenum = (parseInt(this * Math.pow(10, s) + 0.5) / Math.pow(10, s)).toString();
index = changenum.indexOf(".");
if (index < 0 && s > 0) {
changenum = changenum + ".";
for (i = 0; i < s; i++) {
changenum = changenum + "0";
}
} else {
index = changenum.length - index;
for (i = 0; i < (s - index) + 1; i++) {
changenum = changenum + "0";
}
}
return changenum;
}
問題環境:1、数値0.005を四捨五入して2を残して数字にすると、ie 8で0.005.toFixed(2)=0.00を発見します. 2、tofixedで小数点を使った後、0の数字は無視されています.0を小数位として残していません.
関連記事:
jsは数字を処理して2位の小数を保留して、強制的に2位の小数を保留して足りないで補充します.
数の書式設定、書式の数値は2桁の小数点を保持し、書式の数値は指定的にn位の小数点を保留します.
js数字金額を大文字に変換