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,实现最终结果的计算。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号