为什么楼层(5-2 * eps)< 5假?

时间:2014-11-05 16:26:07

标签: matlab floating-accuracy floor

对我来说,Matlab将floor(5-eps) < 5评估为假是荒谬的,这似乎很荒谬。 事实上,即使floor(5-2*eps) < 5也是假的。

我认为这是一个错误,因为eps只是1e-16 - 远离最小双值。 Matlab返回false是否有特定原因?那个想法是什么?

1 个答案:

答案 0 :(得分:4)

您想使用eps(x),而不仅仅是eps

  

eps(X)是从abs(X)到下一个更大的浮点数的正距离,其精度与X相同。

事实上,如果您比较xx+eps(x)的HEX表示,通常它们应该在尾数中相差一位:

>> format hex
>> x = 5
x =
   4014000000000000
>> x + eps(x)
ans =
   4014000000000001