一个关于js的加法问题:0.7+0.1=?

今天在写 JS 的时候无意中发现一个很有意思的问题:

>>> 0.7 + 0.1
0.7999999999999999

这个让我很诧异。另外我在 Python 和 Ruby 中试了一下,结果都是这个。

但是他们在计算

>>> 0.6 + 0.1
0.7

是正确的。 (当然以上只是部分例子。)

不知道各位有谁知道其中的原因。应该跟这些脚本语言处理浮点数的精度有关。现在先把问题贴出来,等明白了再来补充。


非常感谢各位的回答,迟了两天来解决这个问题,实在很抱歉。如同@比尔盖子所说的那样,我的确缺乏相关的浮点知识,于是这两天去看了一些相关的资料。回忆起了以前学习的知识。

再次感谢各位的回答。

阅读 11.1k
3 个回答

还有一个

irb(main):009:0> 0.1 + 0.2
=> 0.30000000000000004
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题