青岛 网站科技公司,网站营销如何做,怎样用织梦建设网站,做网站背景图片要多大基本数据类型中为什么会出现精度损失#xff0c;怎么样会避免出现精度损失 loat 32位
出现精度损失的原因#xff1a;
输入的值为十进制#xff0c;而在计算的过程中#xff0c;是要把十进制的小数位值在有限位的情况下转变为二进制的小数#xff0c;就会出现精度的损失… 基本数据类型中为什么会出现精度损失怎么样会避免出现精度损失 loat 32位
出现精度损失的原因
输入的值为十进制而在计算的过程中是要把十进制的小数位值在有限位的情况下转变为二进制的小数就会出现精度的损失。
结论二进制的小数无法十分精准的表达十进制的小数
避免出现精度损失
a. 可以使用BigDecimal注意在进行计算的时候转为String类型使用BigDecimal提供的方法来实现计算
b. 把小数位转化为整数位存储如用Long类型如金钱3.99 金钱单位值的计算可以用分位来表示即399分
额外知识点BigDecimal底层原理是通过intCompact扩大N倍的Long类型如199.99-19999、scale小数位数将值扩大变为Long类型再进一步进行计算