为什么一个简单的计算 returns 不同的结果 ruby

Why a simple calculation returns different result in ruby

我不是数学专家,但以下操作在 ruby 中给出的结果与我尝试过的任何其他语言或计算器中的结果不同:

Ruby:

(289 / 30 * 30) - (149 / 30 * 30)
=> 150

世界其他地区:

(289 / 30 * 30) - (149 / 30 * 30)

140

非常感谢解释

这是给你的整数数学。 289/30 等于 9。顺便说一下,如果您使用 // 进行整数除法,则 Python 也是如此。

(289//30*30) - (149//30*30) = 150

这是因为数据类型 ruby uses for dividingint 缺少结果的小数部分。

在Ruby中:

289 / 30
=> 9
9 * 30
=> 270
289.0 / 30
=> 9.633333333333333

在Python(例如):

>>> 289 / 30
9.633333333333333
>>> 9.63333 * 30
288.9999