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,实现最终结果的计算。
标签:BigDecimal,valueOf,次倍,add,理解,计算,精度 From: https://www.cnblogs.com/nxjblog/p/18176542