Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试编写一些代码来计算是否a小于bn 位容差,其中a和b是双精度变量。
a
b
例如,4.000000001 < 4.00000001会是TRUE,但4.0000000001 < 4.000000001会是FALSE。3.99999999 < 4.00000000也会FALSE。另请注意,aandb可能为负数。
4.000000001 < 4.00000001
TRUE
4.0000000001 < 4.000000001
FALSE
3.99999999 < 4.00000000
这应该有效:
ndigits = 7; round(a*10^ndigits) < round(b*10^ndigits)
如果你真的要找<关系,我会做
<
x < y + tolerance
其中容差是一个值,它指示上面 y的哪些值应计为低于它的值。
y