![]() |
1
3
这并不是真正的“ruby问题”。这是一个 数字的浮点表示法 问题。
你不能
可靠的
在浮点数和“精确”值之间执行相等检查(由
这就是二进制浮点数的工作原理。它们(有时)是“真实”价值的不精确表示。 您可以:
|
![]() |
2
1
根据上面的Eric评论编辑
你可以使用float的性质,并将其与你提议的一个限制进行比较,这个限制将返回
在您的示例中(我添加了()以提高可读性):
会产生
编辑 基于埃里克(谢谢)的评论。 比较这两个数字时,务必检查公差的极限。 你可以这样做:
它会给你
所以你的容忍度应该是
注意:注意台阶:
现在代码看起来不同了:
|
![]() |
BlurKid · R中for循环时结果的奇怪差异 5 月前 |
![]() |
Dakolas · 对python十进制库感到困惑 1 年前 |
![]() |
IIXenon · for循环的printf仅跳过0[已关闭] 1 年前 |
![]() |
pmor · 如何计算转换规范%.*f的精度以保持浮点值的精度? 1 年前 |
|
Dessie · 如何提高此python代码中的计算精度 1 年前 |