在Ruby中是否有一些功能/语法可以将两个浮点数与delta进行比较?类似于来自 test / unit 的 assert_in_delta(expected_float,actual_float,delta),但返回布尔值?
答案 0 :(得分:18)
(expected_float - actual_float).abs <= delta
答案 1 :(得分:1)
根据您的应用程序以及浮点值实际表示的内容,将它们转换为具有给定精度的Rationals可能是有意义的。然后直接比较将始终正确,因为Rational只是两个整数。
例如,如果您知道自己正在处理美国货币金额,则将其存储为amount.to_r.round(2)
可以进行相等的精确比较。
只是一个想法......并非所有非整数值都需要不精确地表示浮点数
答案 2 :(得分:0)
您可能还需要相对容差/增量计算