对我来说,Matlab将floor(5-eps) < 5
评估为假是荒谬的,这似乎很荒谬。
事实上,即使floor(5-2*eps) < 5
也是假的。
我认为这是一个错误,因为eps
只是1e-16
- 远离最小双值。 Matlab返回false是否有特定原因?那个想法是什么?
答案 0 :(得分:4)
您想使用eps(x)
,而不仅仅是eps
eps(X)是从abs(X)到下一个更大的浮点数的正距离,其精度与X相同。
事实上,如果您比较x
和x+eps(x)
的HEX表示,通常它们应该在尾数中相差一位:
>> format hex
>> x = 5
x =
4014000000000000
>> x + eps(x)
ans =
4014000000000001