Matlab浮点数比较方法

Matlab中的浮点数按照IEEE754约定,以有限的精度进行存储。因此,在进行浮点数的比较时,要特别小心,防止看不见的误差导致错误的结果。例如在Matlab中输入如下代码:

1
2
testNum=0:0.1:1
testNum(4) == 0.3 % 结果将表示两者不相等

最好采用如下方式比较两个浮点数是否相等:

1
abs(testNum(4)-0.3)<eps

参考链接

  1. While comparing the equality of two floating numbers(a,b), we use abs(a – b) < tolerance. Could anyone let me know if there’s anyway that this function may yield bad results or errors ?,by mathworks.