ITPub博客

首页 > IT职业 > IT生活 > 前端— toFixed() 的精度问题

前端— toFixed() 的精度问题

IT生活 作者:daxuesheng 时间:2021-09-09 09:36:45 0 删除 编辑

之前的项目里涉及到了金额的计算,要求保留两位小数或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 

有什么问题,欢迎大家指出。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4692/viewspace-2805158/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-05-22

  • 博文量
    176
  • 访问量
    24988