BigDecimal精度理解

BigDecimal的类声明以及几个属性:

接下来我们可以debug来看下其运行原理

        BigDecimal bigDecimal1 = BigDecimal.valueOf(2.88);
        BigDecimal bigDecimal2 = BigDecimal.valueOf(3.5);
        BigDecimal resDecimal = bigDecimal1.add(bigDecimal2);
        System.out.println(resDecimal);

 可以看出是把数值扩大了10的n次倍,并记录了n值,然后再使用add方法计算。

 总结:

所以可以得出结论:BigDecimal在计算时,实际会把数值扩大10的n次倍,变成一个long型整数进行计算,整数计算时自然可以实现精度不丢失。同时结合精度scale,实现最终结果的计算。

 

posted @ 2024-05-07 09:33  轻寒  阅读(7)  评论(0编辑  收藏  举报