【问题标题】:Why a simple calculation returns different result in ruby为什么一个简单的计算会在 ruby​​ 中返回不同的结果
【发布时间】:2019-06-28 15:03:01
【问题描述】:

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

鲁比:

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

世界其他地区:

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

140

非常感谢您的解释

【问题讨论】:

  • 这不仅仅是 Ruby,这是许多编程语言,其中没有小数的数字被视为整数。如果您进行数学运算,但在每次运算后删除结果的小数部分,您将得到 150。

标签: ruby math calculator irb


【解决方案1】:

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

在红宝石中:

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

在 Python 中(例如):

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多