浮点数的精度误差?

首先可以这么说就,这是所有语言的通病。

各位可以看看包装类语言和其他语言的精度区别

这边例举java与C的例子:

先放java的

然后这个是C的

 由以上可以看出,明显来说包装类的这一方面做的会比较好。

其实低层来说的话,是因为高精度类型转换为二进制的浮点数可能会是无限循环小数。但由于浮点数精度有限被强行截断,所以转回十进制输出的数据会有误差。

那么如何优化这个问题

我们只需要将数据的大小拉高,将大部分数据转为计算机可以记住的int型数据然后后面在进行一个计算结束的时候将它精度在拉回来,也就像是将数据进行先乘以100再除以100这样类似的操作,只要我的乘数足够大的话就可以避免相应的误差。

posted @ 2021-12-20 17:13  忆林pp  阅读(37)  评论(0)    收藏  举报  来源