Ruby 110/1.1 != 100浮点问题?

Ruby 110/1.1 != 100浮点问题?,ruby,floating-point,Ruby,Floating Point,关于我在这里没有说明的事情,有什么想法吗 看起来它返回99.99999999999 使用ruby 2.3.1p112-要进行精确计算,必须使用decimal数据类型,在ruby中由类表示: 答案就在你的标题里100-110/1.1输出1.42e-14,这可能足够好了。您对一百万次讨论的总结非常接近。十进制本身并不比二进制更精确。对于十进制数,十进制浮点优于二进制浮点,多精度优于机器算术,但这并不能使BigDecimal成为您所暗示的万灵药。 BigDecimal(110)/1.1 == 100

关于我在这里没有说明的事情,有什么想法吗

看起来它返回
99.99999999999

使用ruby 2.3.1p112

-要进行精确计算,必须使用decimal数据类型,在ruby中由类表示:


答案就在你的标题里
100-110/1.1
输出
1.42e-14
,这可能足够好了。您对一百万次讨论的总结非常接近。十进制本身并不比二进制更精确。对于十进制数,十进制浮点优于二进制浮点,多精度优于机器算术,但这并不能使BigDecimal成为您所暗示的万灵药。
BigDecimal(110)/1.1 == 100
#=> true