Bigdecimal学习记录

在金融行业内,一般情况下使用浮点数计算时结果会有精度上的问题,比如说double和float:

   double a = 0.1;

   double b = 0.2;

此时的 a + b 并不是等于0.3 ,而是等于0.30000000000004 。

这是因为十进制小数在转化到二进制进行运算的过程中,会有精度丢失的问题,导致结果和理论结果不一致。

所以说,为了解决这种问题导致的数据问题,我们通常使用Bigdecimal类来解决问题。

一般使用如下方法来进行运算:

BigDecimal add(BigDecimal augend) 加法运算
BigDecimal subtract(BigDecimal subtrahend) 减法运算
BigDecimal multiply(BigDecimal multiplicand) 乘法运算
BigDecimal divide(BigDecimal divisor) 除法运算

并且,一般来使用valueOf方法来将浮点数包装成Bigdecimal类数据:

Bigdecimal b1 = Bigdecimal.valueOf(b);

在对浮点数包装完后,就可以使用Bigdecimal类的计算方法来对数据进行处理和计算,但是,Bigdecimal只是解决精度问题的手段最后的数据才是我们的目的,所以说最好在计算完数据后将数据变回原来的类型:

double b2 = b1.doubleValue();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值