toFixed并非四舍五入,看如下例子:
var a = 0.15;
a.toFixed(1); // 结果为0.1
var b = 0.16;
b.toFixed(1); // 结果为0.2
var c = 0.155;
c.toFixed(2); // 结果为0.15
var d = 0.156;
d.toFixed(2); // 结果为0.16
Math.round实现四舍五入函数
/**
* param {Number} num 数值
* param {Number} len 小数位的个数(几位小数)
*/
var keepDecimal = function(num, len) {
// 将数值转浮点数
var result = parseFloat(num);
// 默认保留一位小数
len = len ? len : 1;
if (isNaN(result)) {
return 0;
}
result = Math.round(num * Math.pow(10,len)) / Math.pow(10,len);
return result;
}
keepDecimal(0.15,1); // 结果为0.2
keepDecimal(0.155,2); // 结果为0.16
相关文章:JS四舍五入保留两位小数