js乘法带小数点时显示结果默认会有1个bug,会显示小数点后面很多位,比如:
计算12.60 * 13结果是163.79999999999998
console.log(12.60 * 13); //输出:163.79999999999998
此时可以采用 toFixed() 方法,() 方法里面的参数表示保留几位小数点,如果不填参数则不显示小数点后面的数字,相当于参数为0
console.log((12.60 * 13).toFixed()); // 输出:164
console.log((12.60 * 13).toFixed(3)); // 输出:163.80
console.log((12.60 * 13).toFixed(3)); // 输出:163.800
总结:JavaScript中的toFixed()方法用于使用定点表示法格式化数字,格式化数与到小数点右侧的特定的位数。也就是可以把 Number 四舍五入为指定小数位数的数字
但是说是四舍五入,但实际上是四舍六入,偶入奇不如。当要保留的小数点位数的最后一位是奇数时,5不会进1(四舍六入,奇数不入);当要保存的小数点位数最后一位为偶数时,5会进1(四舍六入,偶数入)。示例如下图:
解决方法:
// toFixed 修复
toFixed: function (num, s) {
var times = Math.pow(10, s)
var des = num * times + 0.5
des = parseInt(des, 10) / times
return des + ''
}