ruby浮点表达式的不同结果

ruby浮点表达式的不同结果,ruby,Ruby,案例1和案例2的区别是什么 我认为结果应该是一样的:7.78 有人能给我解释一下吗 案例1:a=(x/y).四舍五入*100 案例2:a=(x/y*100)。第二轮(2) 案例1 x=7.0 y=90 a=x/y => 0.07777777777777778 a=a.round(4) => 0.0778 a=a*100 => 7.779999999999999 案例2 x=7.0 y=90 a=x/y => 0.07777777777777778 a=a*100 =&

案例1和案例2的区别是什么

我认为结果应该是一样的:7.78

有人能给我解释一下吗

案例1:
a=(x/y).四舍五入*100

案例2:
a=(x/y*100)。第二轮(2)

案例1

x=7.0
y=90
a=x/y
=> 0.07777777777777778
a=a.round(4)
=> 0.0778
a=a*100
=> 7.779999999999999

案例2

x=7.0
y=90
a=x/y
=> 0.07777777777777778
a=a*100
=> 7.777777777777778
a=a.round(2)
=> 7.78

浮点数不能精确地表示所有实数,而浮点数运算不能精确地表示真算术运算,这导致了许多令人惊讶的情况

我建议阅读:

副本