我正在测试一个简单的程序,使用Ruby将华氏温度转换为摄氏温度。
此代码在终端返回36.999999999。
def ftoc(far)
return (far-32)/1.8
end
ftoc(98.6)
此代码返回37。
def ftoc(far)
return (far-32)*(5.0/9)
end
ftoc(98.6)
谁能告诉我为什么?谢谢!
答案 0 :(得分:4)
您使用的数字类型称为浮点数。
通常,任何浮点算术运算都会引入舍入误差。如果以不同的方式计算两个浮点结果,则不能指望两个浮点结果完全相等;你必须对小错误有一定的容忍度。