Matlab处理数值表达式

时间:2014-10-15 21:43:45

标签: matlab

为什么Matlab在输入1-10 ^( - 16)时会显示1.0000,而在输入1-10 ^( - 17)时会显示1?浮点治疗有什么不同或者其他什么?提前致谢

1 个答案:

答案 0 :(得分:3)

基本上,MATLAB只能存储16位有效数字。

MATLAB使用IEEE 754 double-precision floating point个数字,可以代表~16个十进制数字。在此格式中,1-10 ^ -16存储为:

0x3fefffffffffffff

此后的下一个双重是:

0x3ff0000000000000

恰好是1。换句话说,MATLAB不可能准确地表示1-10^17,因此它将它舍入到它可以表示的最接近的数字,结果是1