在我看来,Matlab评估floor(5-eps) < 5
是错误的,这似乎是荒谬的。事实上,即使是floor(5-2*eps) < 5
也是错误的。
这就是我所认为的bug,因为eps
仅仅是关于1e-16
的--而不是最小的双值。是否有具体的原因,为什么Matlab返回假?那里有什么想法?
发布于 2014-11-05 16:32:09
你想要使用eps(x)
,而不仅仅是eps
eps( X )是从abs(X)到下一个更大的浮点数的正距离,与X的精度相同。
实际上,如果您比较x
和x+eps(x)
的HEX表示,通常它们在尾数中应该有一点不同:
>> format hex
>> x = 5
x =
4014000000000000
>> x + eps(x)
ans =
4014000000000001
https://stackoverflow.com/questions/26762136
复制相似问题