ruby - 为什么 Ruby 在计算 mod 时要添加精度/数字?

标签 ruby geo

<分区>

我需要用坐标做一些计算,遇到了 这种(至少对我而言)奇怪的行为。 有人可以解释为什么会这样吗?

$ 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.

Documentation

从上面的文档中,您还可以获得一些绕过 native float 行为的选项。上面的文档可以被认为是官方文档,因为它由 ruby-doc.org 提供。 .

关于ruby - 为什么 Ruby 在计算 mod 时要添加精度/数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39875154/

相关文章:

python - 类定义中未声明的 Python 变量的 Ruby 模拟是什么?

ruby-on-rails - NameError:rake 任务中未初始化的常量 Class::Class

ruby-on-rails - 为什么包含 Rescuable 模块不起作用?

Android:查找两个地理点之间的距离

ruby-on-rails - Rails elasticsearch _geo_distance和自定义评分/排序

coordinates - 如何将足球场上的位置转换为矩形上的坐标?

ruby - 防火墙不工作

math - 如何将纬度或经度转换为米?

javascript - 如何在 map 上显示/隐藏?

ruby - 为什么我得到 "RAKEFILE ABORTED, NO RAKEFILE FOUND"?