<分区>
我需要用坐标做一些计算,遇到了 这种(至少对我而言)奇怪的行为。 有人可以解释为什么会这样吗?
$ long
=> 49.0126760222489
$ long % long.floor
=> 0.012676022248896857
我原以为最后一行的计算结果只是句点后的数字,来自 long
,而是有一个额外的 6857
贴在最后。
为什么要加数字?
信息从何而来?
<分区>
我需要用坐标做一些计算,遇到了 这种(至少对我而言)奇怪的行为。 有人可以解释为什么会这样吗?
$ long
=> 49.0126760222489
$ long % long.floor
=> 0.012676022248896857
我原以为最后一行的计算结果只是句点后的数字,来自 long
,而是有一个额外的 6857
贴在最后。
为什么要加数字?
信息从何而来?
最佳答案
看似与Ruby本身无关,但是:
floating point numbers that in general suffer from this type of rounding error, because they’re limited to x number of bytes, and, in general, cannot store decimal number perfectly.
从上面的文档中,您还可以获得一些绕过 native float 行为的选项。上面的文档可以被认为是官方文档,因为它由 ruby-doc.org 提供。 .
关于ruby - 为什么 Ruby 在计算 mod 时要添加精度/数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39875154/