大家好,我是胖虎,给首先大家分享两个产品
在金融领域,为了保证数据的精度,往往会使用BigDecimal。本文就来探讨下为什么BigDecimal可以保证精度不丢失。
类介绍
首先来看一下BigDecimal的类声明以及几个属性:
privatestaticBigDecimaladd(longxs,longys,intscale){longsum=add(xs,ys);if(sum!=INFLATED)returnBigDecimal.valueOf(sum,scale);returnnewBigDecimal(BigInteger.valueOf(xs).add(ys),scale);}
这个方法很简单,就是计算和,然后返回BigDecimal对象:

结论
所以可以得出结论:BigDecimal在计算时,实际会把数值扩大10的n次倍,变成一个long型整数进行计算,整数计算时自然可以实现精度不丢失。同时结合精度scale,实现最终结果的计算。
来源:juejin.cn/post/7348709938023940136
本篇文章来源于微信公众号: Java后端精选
微信扫描下方的二维码阅读本文

Comments NOTHING