解决 tofixed 遇到5 之后 四舍不入 不精准的问题 !
在网上找了 半天,都说了半天废话, 太费劲了,都是copy的, 太费劲了, 要不 就是他们的方法 不对,还是老样子
解决思路:当tofi 截取的时候 判断是否是5 , 如果是,手动改变 tofixed 位数 手动 添加一位 就可以 避开 tofixed 的 bug 他就可以自动准确计算出
tofixed(val, len) { // val 需要截取的小数 len保留几位小数
if (val.toString().split('.') && val.toString().split('.')[1] && val.toString().split('.')[1].length > len) { // 解决 tofix .5 不精确
if (val.toString().split('.')[1].charAt(len) * 1 === 5) {
const newNumber = Number(val.toString().split('.')[0] + '.' + val.toString().split('.')[1] + '1')
val = newNumber.toFixed(len)
} else {
val = val.toFixed(len)
}
}
return val
},
举例: 保留 三位小数 tofixed(123.55555,3) 运算后结果就是 123.556

浙公网安备 33010602011771号