在Ruby中是否有一些功能/语法可以将两个浮点数与delta进行比较?类似于来自 test / unit assert_in_delta(expected_float,actual_float,delta),但返回布尔值?

有帮助吗?

解决方案

(expected_float - actual_float).abs <= delta

其他提示

根据您的应用程序以及浮点值实际表示的内容,将它们转换为具有给定精度的Rationals可能是有意义的。然后直接比较将始终正确,因为Rational只是两个整数。

例如,如果您知道自己正在处理美国货币金额,则将它们存储为 amount.to_r.round(2)可以进行相等的精确比较。

只是一个想法......并非所有非整数值都需要不精确地表示浮点数

您可能还需要相对容差/增量计算

http://realtimecollisiondetection.net/blog/?p=89

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top