发布于 2014-06-14 08:04:20
3楼
你的这个问题也讨论过很多次了,这是因为累加器的有效位造成,而累加的过程实数累加,先对齐指数,然后对齐有效数字部分,累加的两个数的数量级相差10^7的话,小的那个数对齐指数后,有效数字就变成0了。所以累加的过程中数量级不能相差10^7,越接近这个数量级误差越大。
解决方法:你可以用多次累加的方式来做:sum1=sum1+pv,若sum1>sum1_sp,则sum2=sum2+sum1,sum1=0,最后的累计值就是sum1+sum2,如果要累计更多,你可以再重复上面的方法。
活到老,学到老!为了生活学习吧!