Matlab:找到下一个较小的浮点数

时间:2018-05-09 14:19:20

标签: matlab floating-point

Matlab函数eps(x)返回“从abs(x)到下一个与x具有相同精度的较大浮点数的正距离”。我用它来计算大于x的最小浮点数,通过x + eps(x)。我还想获得小于x的最大浮点数,但我不知道类似于eps的函数可以促进这一点。如何找到小于x的最大浮点数?

1 个答案:

答案 0 :(得分:5)

您几乎可以在所有情况中减去eps

然而,正如您可能已经意识到的那样,当mantisa更改时,或者换句话说,当您想要减去2的幂时,这不适用。

负面eps然后很容易实现,因为知道当前eps小于下一个2次幂的距离,这将触发步进变化。因此,我们的数字eps减去其eps应该可以解决问题。

function out=neps(in)

out=eps(in-eps(in));

这似乎工作正常

eps(2)

     4.440892098500626e-16

neps(2)

     2.220446049250313e-16