js 两个数字相加,33.33 + 0.01为什么会等于33.3399999996?

代码:
image.png

打印:
image.png

因为后端给的是string类型不能直接相加,所以我转为number后相加 就成了上图那样的结果了

Number() parseFloat()都试了都是一样不行

阅读 4.7k
5 个回答

我自己用的加法封装

function NumAdd() {
  let sum = 0; // 用来保存总和
  for (var i = 0; i < arguments.length; i++) {
    let col = Number(arguments[i]);
    if (!isNaN(col)) {
      sum += col * 1000;
    }
  }
  return sum / 1000;
}

NumAdd(33.33,0.01) //=>33.34

原因请百度0.1+0.2
解决办法就是重新toFixed

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题