如何判断两个数字是否真的不同或者由于浮点错误它们实际上是相同的

时间:2016-11-06 00:19:59

标签: matlab

例如,

0.168033639538270 和  0.168033639538270

是来自两个不同计算的两个double类型数字(从矩阵的特征值进一步计算)。

但它们被MATLAB视为不同(unique==)。我如何知道MATLAB是否因浮点错误eps = 2.220446049250313e-16将它们视为不同,或者它们实际上是不同的(前15位数字后面的数字不相同,但MATLAB不会显示它们)。有时MATLAB会将具有相同显示值的两个数字视为相同但有时不同,所以我想知道它们是否真的不同。

1 个答案:

答案 0 :(得分:0)

您可以使用sprintf以所需的精度打印数字的格式化版本,然后使用strcmp比较两个字符串。