在Ruby中比较两个浮点数,给出false [重复]

dvtswwa3  于 2023-06-29  发布在  Ruby
关注(0)|答案(1)|浏览(121)

此问题已在此处有答案

Why would Ruby fail equality on 2 floats that appear the same?(3个答案)
Is floating point math broken?(33个回答)
2天前关闭。
我有两个号码:balance 1 = 0.253164557e-4(将给予0.0000253164557)balance 2 = 0.00002531
当我在ruby中比较时,就像:balance1 == balance2,由于精度问题,它给出false
但我的要求是认为他们是平等的,建议如何做到这一点

6g8kf2rb

6g8kf2rb1#

浮点数不适合进行精确比较。通常,两个应该相等的数字实际上略有不同。比较两个浮点数的一种方法是使用增量值。您可以检查两个数字之间的绝对差值是否小于或等于增量值。例如:(expected_float - actual_float).abs <= delta

相关问题