关于浮点数累加停止问题
进行实数相加的话,要注意的一个问题当两个数的数量级别相差太大的时候,就会出现不累 累加的情况 在实数的定义和计算可保持精确到小数点后6位 加和减时,是按照指数归齐,也就是基数和指数对加和减相同,只加入尾数 0.0625=6.25e-2 1627262.2=1.627262e+6(最后1个2是舍去的) 相加的时候,按照指数归齐那么 6.25e-2=0.0000000625e+6(指数为6要对齐) 这时小数点后只保留6位,那么就是 0.000000e+6也就是0 所以相加后的数据就出现所说的不能累加的情况。解决的方法可以将数值累加的一定数值后,比如累计1个小时后或者累加至10000时,将累加值及时保存到另外地址记录次数,然后清空累加值,再重新累计。
图片1.png (288.57 KB, 下载次数: 823)
页:
[1]