matlab中的浮点数计算误差

时间:2021-12-22 16:12:45
在matlab中为什么
0.33-0.5+0.17=2.7756e-017

0.33+0.17-0.5=0
请用计算机内部的运算机制来详细解释原因。

4 个解决方案

#1


这是典型的大数吃小数。
把三个数都写为二进制表示,就一目了然了。

#2


先做减法结果是负数,先做加法结果是非负数
这个跟负数在计算机中的表示法有关系

#3


就是运算误差累积造成的。

#4


谁能给个详细的解释,我给个好评 matlab中的浮点数计算误差

#1


这是典型的大数吃小数。
把三个数都写为二进制表示,就一目了然了。

#2


先做减法结果是负数,先做加法结果是非负数
这个跟负数在计算机中的表示法有关系

#3


就是运算误差累积造成的。

#4


谁能给个详细的解释,我给个好评 matlab中的浮点数计算误差