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

发布于 2022-09-12 13:00:36 字数 238 浏览 15 评论 0

代码:
image.png

打印:
image.png

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

天生の放荡 2022-09-19 13:00:36

可以用科学计算法处理,https://blog.csdn.net/weixin_...

甩你一脸翔 2022-09-19 13:00:36

我自己用的加法封装

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
也只是曾经 2022-09-19 13:00:36

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文