toFixed一直被我认为是四舍五入的最好方法,直到测试给我提了bug、、、
经过测试发现:
(1.005).toFixed(2) // '1.00'
直接裂开,用了这么久的方法居然有很严重的bug。搜索资料发现他并非单纯的四舍五入,而是四舍六入五取偶的方法。但是经过实际检测发现也并非如此,所以最好的方法还是自己编写一个四舍五入的方法。
function myToFixed(target, len = 2) {
if(len < 1) {
console.error('无效保留位数!')
return
}
let num = Number(target)
if(Number.isNaN(num)) {
console.error('无效数字!')
return 0
}
let numLen = Math.pow(10, len)
return Math.round(num * numLen ) / numLen
}