大家好,我是胖虎,给首先大家分享两个产品

无需魔法,国内可直接使用官方ChatGPT-4(Plus)、ChatGPT-4o!

Java八股文面试小程序!

在金融领域,为了保证数据的精度,往往会使用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后端精选



微信扫描下方的二维码阅读本文

此作者没有提供个人介绍
最后更新于 2024-08-01