genius_cc 发表于 2011-10-7 02:20:03

【求助】除法出现误差

本帖最后由 genius_cc 于 2011-10-7 02:20 编辑

第一次来MATLAB版。
有个简单的除法 600e-6/100e-6,按理说答案是6,但是如果在fomat long下面,答案却是5.9999999999.
不知道为什么?是我机器的问题还是关于精度设置的问题~~
现在不得已用round函数四舍五入了,但是非常纳闷儿~
希望高手解答。感谢

建军87 发表于 2011-10-8 08:44:23

这个是很奇怪啊,我也经常遇到这样的问题

genius_cc 发表于 2011-10-10 10:07:13

没回答TT .不知有没有高手知道这个问题的原因,自己顶一个~谢谢

feynmand 发表于 2011-10-10 15:05:21

这是计算机二进制产生的绝症,两个数据在存储的时候并不是 完全等于600e-6和100e-6这两个数的。另外计算过程中也会发生截断误差。你换个操作系统,换个计算软件的话也还是这样。

解决方法:尽量不要用特别小的数做分母。
页: [1]
查看完整版本: 【求助】除法出现误差