BigDecimal使用
BigDecimal 在金额计算中丢失精度。
原因分析:
首先我们先用一段代码复现问题根源,如下所示:
public static void main(String[] args) {
BigDecimal bigDecimal=new BigDecimal(88);
System.out.println(bigDecimal);
bigDecimal=new BigDecimal("8.8");
System.out.println(bigDecimal);
bigDecimal=new BigDecimal(8.8);
System.out.println(bigDecimal);
}
结果:
通过测试发现,当使用 double 或者 float 这些浮点数据类型时,会丢失精度,String、int 则不会
总结
所以,在涉及到精度计算的过程中,我们尽量使用 String 类型来进行转换。