关于float的低精度问题

float作为单精度浮点,是存在较大精度损失的。这里的精度损失大小和阶数有关系,当阶数很大时,精度损失也很大。

double也有精度损失,但由于位数多,所以精度更高。

在处理有精度损失的数据时,要关注精度损失对计算结果的影响。

常见情况为 大数吞小数 的情况

即 大数 + 小数 时,小数的值 < 大数的精度, 导致加上过后,在计算机里表示时恰好把小数这部分的值精度损失掉了。

(如float 作累加++,加到6w多就加不上去了)

对于这种问题的解决方案:

1)高精度加法-------kahn求和

2)避免出现大数 + 小数情况,尽量使各个数的范围是差不多量级

posted on 2017-08-09 13:00  d神  阅读(347)  评论(0编辑  收藏  举报

导航