【发布时间】:2015-12-02 06:21:38
【问题描述】:
30.0 * 0.009 # => 0.26999999999999996
有人知道为什么这不是0.27吗?
对此有何建议?
【问题讨论】:
-
这就是浮点数的工作原理。 “我们是博格的浮子。准确性无关紧要,您将被近似”
-
我读过。作者建议使用 BigDecimal 等。我现在正在阅读。如果你以前解决过这个问题,你会在你的代码库中做什么?我也在看“每个计算机科学家都应该知道的关于浮点运算的知识”。还有一篇比较不同语言的好文章itreallymatters.net/post/386327451/…。
-
这一切都归结为计算机无法以二进制形式准确表示 every 浮点数。因此,算术变得很奇怪。
标签: ruby