为什么简单的计算在ruby中返回不同的结果

时间:2019-06-28 15:03:01

标签: ruby math calculator irb

我不是数学专家,但是以下操作给出的红宝石结果与我尝试过的其他任何语言或计算器都不一样:

Ruby:

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

世界其他地方:

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

140

非常感谢您的解释

2 个答案:

答案 0 :(得分:3)

这是因为数据类型为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

答案 1 :(得分:2)

这是适合您的整数数学。 289/30等于9。顺便说一句,如果您使用//进行整数除法,在Python中也是如此。

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