在实际应用中,发现了javaScript一个bug,就是它的toFixed()函数并不是总能正确的将一个数四舍五入(四舍五入的结果不一定正确)并保留指定的位数。在网上看到其他人的写法受到启发,自己练习用js实现四舍五入,并且可以按照制定的位数保留小数点。亲测无误。
comma(传入的数值,保留小数点的位数)
function comma(value,n){
var f = parseFloat(value);
if (isNaN(f)) {
return false;
}
var f = Math.round(value*Math.pow(10,n))/Math.pow(10,n); //Math.round返回一个四舍五入后的整数
var s = f.toLocaleString(); //将整数部分每3为用逗号隔开,如果不需要隔开:var s=f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + n) { //位数不够的,补零。
s += '0';
}
return s;
}