BigDecimal类add等加减乘除后的值没有发生改变,那些我使用BigDecimal遇到的坑

在涉及金额计算时,通常使用BigDecimal避免精度损失。然而,在使用BigDecimal的add等方法时,若未正确接收返回值,可能导致计算结果无法更新。文章讲述了作者遇到的一个坑,即在执行add操作后,实际值并未改变。解决问题的关键在于,调用方法时需有一个对象接收返回的新值。
摘要由CSDN通过智能技术生成

BigDecimal的使用场景

但凡我们的系统涉及到使用金额的时候,一般我们都会使用BigDecimal ,BigInteger等big类来进行计算,**不使用double,float类是因为浮点数都是会损失精度的,浮点数采用类似科学计数法的方式储存数据,**而BigDecimal类可以避免这个问题,它的底层是数组进行计算.

BigDecimal使用方法:

public static double sub(double v1,double v2){
    
//创建一个  BigDecimal 对象
BigDecimal b1 = new BigDecimal(Double.toString(v1));   
BigDecimal b2 = new BigDecimal(Double.toString(v2));  
//调用b1 对象的add方法. (传入的参数也必须是BigDecimal类型)
return b1.add(b2).doubleValue();   
}   

BigDecimal的基本加减乘除:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值