当我在irb控制台中添加两个浮点数时,结果不符合预期
10.43 + 4.56 # should be 14.99
但实际结果是
irb(main):001:0> 10.43+4.56
=> 14.989999999999998
是什么导致这种情况?
答案 0 :(得分:2)
这是预期的行为。浮点数不能保证精度,因为简而言之,计算机是二进制系统(截至2013年),无法正确表示小数值。这就是为什么你得到“意想不到的”结果,实际上这是它的工作方式,直到有一个非二进制机器可以正确表示小数值。