前言
在开发过程中进行浮点数计算的时候会经常出现精度丢失的问题,这里收藏几个解决这个问题的方法。
典型例子
1 | // 加法 ===================== |
原因
计算机存储双精度浮点数需要先把十进制数转换为二进制的科学记数法的形式,然后计算机以自己的规则{符号位+(指数位+指数偏移量的二进制)+小数部分}存储二进制的科学记数法,因为存储时有位数限制(64位),并且某些十进制的浮点数在转换为二进制数时会出现无限循环,会造成二进制的舍入操作(0舍1入),当再转换为十进制时就造成了计算误差
解决方法
1 | //除法 |
参考链接: