之前的项目里涉及到了金额的计算,要求保留两位小数或4位小数,一直是采用原生的Number对象的原型对象上的toFixed()方法来计算的。直到有一天测试提了Bug,反复验证后发现,用 tofixed 来保留n位小数在某种情况下确实会出精度问题,真叫人头大 (ÒωÓױ)!!!
下面进行测试
let num = 1.234 num.toFixed(2) //1.23 正确 let num = 1.235 num.toFixed(2) //1.24 正确 let num = 1.236 num.toFixed(2) //1.24 正确 let num = 0.234 num.toFixed(2) //0.23 正确 let num = 0.235 num.toFixed(2) //0.23 错误 X let num = 0.236 num.toFixed(2) //0.24 正确
也就是说,当num
可以用 $toFixed(num,n) 方法来代替num.toFixed(n) :
$tofixed (num, n) {
var symbol = 1
if (num 有什么问题,欢迎大家指出。