|
|
1
3
这并不是真正的“ruby问题”。这是一个 数字的浮点表示法 问题。
你不能
可靠的
在浮点数和“精确”值之间执行相等检查(由
这就是二进制浮点数的工作原理。它们(有时)是“真实”价值的不精确表示。 您可以:
|
|
2
1
根据上面的Eric评论编辑
你可以使用float的性质,并将其与你提议的一个限制进行比较,这个限制将返回
在您的示例中(我添加了()以提高可读性):
会产生
编辑 基于埃里克(谢谢)的评论。 比较这两个数字时,务必检查公差的极限。 你可以这样做:
它会给你
所以你的容忍度应该是
注意:注意台阶:
现在代码看起来不同了:
|