【发布时间】:2020-03-25 22:08:08
【问题描述】:
我刚开始学习 Ruby,发现它计算出 11 / 3.0 为 3.6666666666666665。
为什么不像大多数计算器/数学惯例那样四舍五入到“...67”?
编辑:人们关闭这个问题的事实是否意味着问题的答案是由于浮点运算?我想知道是否是这种情况,或者是否有关于 Ruby 如何计算数字的具体决定。
【问题讨论】:
-
我猜……可能吗?虽然我仍然想知道为什么,如果计算器是一台计算机并且它可以给出正确的答案,为什么不按照相同的标准构建编程语言?
-
我还听到有人说,“Ruby Divisions downs”,所以这听起来像是在制作语言时有意识的编程决定,所以我想知道为什么
-
@user53: 计算器确实有同样的限制,如果它们使用相同的浮点实现,大多数都这样做。
-
“人们关闭这个问题是否意味着问题的答案是由于浮点运算?”是的。使用 IEEE 浮点数(绝大多数)的所有其他语言都表现出完全相同的行为。示例:Go、JavaScript。
标签: ruby math rounding division calculation