添加两个红宝石花车会产生意想不到的效果

时间:2013-05-30 14:34:38

标签: ruby ruby-2.0

当我在irb控制台中添加两个浮点数时,结果不符合预期

10.43 + 4.56 # should be 14.99

但实际结果是

irb(main):001:0> 10.43+4.56
=> 14.989999999999998

是什么导致这种情况?

1 个答案:

答案 0 :(得分:2)

这是预期的行为。浮点数不能保证精度,因为简而言之,计算机是二进制系统(截至2013年),无法正确表示小数值。这就是为什么你得到“意想不到的”结果,实际上这是它的工作方式,直到有一个非二进制机器可以正确表示小数值。