BigDecimal累积增加(加等于)报空指针

本文深入探讨BigDecimal类在Java中处理精确数值运算的应用技巧,包括累积增加操作与比较方法的正确使用,避免常见的equals与==比较错误,确保财务计算的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

累积增加:

private BigDecimal totalMoney = BigDecimal.ZERO;    // 注意:必须要初始化值,否则会报空指针
totalMoney = totalMoney.add(new BigDecimal(5));

在使用BigDecmial进行比较的时候不能使用equals与==比较了,需要使用compareTo()进行比较

BigDecimal temp1 = new BigDecimal(3);
BigDecmial temp2 = new BigDecimal(6);
if(temp1.compareTo(temp2)==0) 

 

给我优化一下,主要考虑 简洁 性能: if (ObjectUtil.isNotEmpty(bizMemberAddParam.getCash()) && bizMemberAddParam.getCash().compareTo(BigDecimal.ZERO)> 0){ if (bizMemberRechargeRecord.getPayment()!=null){ bizMemberRechargeRecord.setPayment(bizMemberRechargeRecord.getPayment()+"现金("+bizMemberAddParam.getCash()+")"); }else { bizMemberRechargeRecord.setPayment("现金("+bizMemberAddParam.getCash()+")"); } bizMemberRechargeRecord.setCash(bizMemberAddParam.getCash()); } if (ObjectUtil.isNotEmpty(bizMemberAddParam.getUnionPay())&&bizMemberAddParam.getUnionPay().compareTo(BigDecimal.ZERO)> 0){ if (bizMemberRechargeRecord.getPayment()!=null){ bizMemberRechargeRecord.setPayment(bizMemberRechargeRecord.getPayment()+"银联("+bizMemberAddParam.getUnionPay()+")"); }else { bizMemberRechargeRecord.setPayment("银联("+bizMemberAddParam.getUnionPay()+")"); } bizMemberRechargeRecord.setUnionPay(bizMemberAddParam.getUnionPay()); } if (ObjectUtil.isNotEmpty(bizMemberAddParam.getWeChat())&&bizMemberAddParam.getWeChat().compareTo(BigDecimal.ZERO)> 0){ if (bizMemberRechargeRecord.getPayment()!=null){ bizMemberRechargeRecord.setPayment(bizMemberRechargeRecord.getPayment()+"微信("+bizMemberAddParam.getWeChat()+")"); }else { bizMemberRechargeRecord.setPayment("微信("+bizMemberAddParam.getWeChat()+")"); } bizMemberRechargeRecord.setWeChat(bizMemberAddParam.getWeChat()); } if (ObjectUtil.isNotEmpty(bizMemberAddParam.getAlipay())&&bizMemberAddParam.getAlipay().compareTo(BigDecimal.ZERO)> 0){ if (bizMemberRechargeRecord.getPayment()!=null){ bizMemberRechargeRecord.setPayment(bizMemberRechargeRecord.getPayment()+"支付宝("+bizMemberAddParam.getAlipay()+")"); }else { bizMemberRechargeRecord.setPa
03-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆埙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值