我正在运行MatLab R2020b中的脚本。该脚本包含一个具有下列值的数组:a=[500, 500, 500, 1000, 750, 750, 567.79 613.04]
脚本是一个方程式:(a(1)*(a(8)-a(6)) + a(7)*(a(6)-a(2))+ a(5)*(a(2)-a(8)))
当运行在MatLab上时,上面的公式给出了数组a的值的答案**-11312**。但是,当我分别计算每个值并将它们相加时,MatLab编译器给出了不同的答案。
a(1)*(a(8)-a(6)) = -68480
a(7)*(a(6)-a(2)) = 1.419e+05
a(5)*(a(2)-a(8)) = -84780
>>(-68480) + (1.419e+05) +(-84780)
上面的答案是**-11310**。
还附上了命令的屏幕截图。
请告诉我为什么MatLab编译器会给出不同的答案?
2条答案
按热度按时间gab6jxml1#
问题是,matlab的默认格式是
'short'
,这并没有显示出完全的精度。试试format long
。d7v8vwbk2#
你错了。
如果您添加
format long g
,您可以看到实数:结果是: