为什么在括号内注释浮点除法会产生与外部不同的结果?

时间:2016-05-19 20:33:24

标签: ruby floating-point precision temperature

我正在使用下面的代码将Celsius转换为Fahrenheit,但是我需要的确切结果与我得到的结果略有不同,仅仅因为我把float分区放在括号内。我的问题是,为什么会这样呢?

def convertToCelsius(temp)
  celsius = (temp.to_f - 32) * 5.0 / 9.0  # => -29.444444444444443
  return celsius                          # => -29.444444444444443
end                                       # => :convertToCelsius

convertToCelsius(-21)  # => -29.444444444444443

(参见下面轻微的结果差异)。

def convertToCelsius(temp)
  celsius = (temp.to_f - 32) * (5.0 / 9.0)  # => -29.444444444444446
  return celsius                            # => -29.444444444444446
end                                         # => :convertToCelsius

convertToCelsius(-21)  # => -29.444444444444446

0 个答案:

没有答案