BigDecimal使用总结

本文介绍了BigDecimal在处理精度计算时的常用方法,如setScale()进行四舍五入和格式化,以及如何使用compareTo()进行安全的比较。示例展示了不同舍入模式的效果,并提供了比较BigDecimal实例的条件判断示例。

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

BigDecimal比较建议用compareTo

BigDecimal.setScale()方法实用技巧

scale() 方法用于格式化小数点

  • setScale(1,BigDecimal.ROUND_DOWN) 直接删除多余的小数位,如2.35会变成2.3
  • setScale(1,BigDecimal.ROUND_UP) 进位处理(无论小数如何),2.35变成2.4
  • setScale(1,BigDecimal.ROUND_HALF_UP) 四舍五入,2.35变成2.4(目前最常用的金额处理方法)
  • setScale(1,BigDecimal.ROUND_HALF_DOWN)
    四舍五入,2.35变成2.3,如果是5则向下舍(6及以上则向上入)

BigDecimal比较建议用compareTo

compareTo()方法在比较时不会引发异常。

BigDecimal b1 = new BigDecimal(0.1);
BigDecimal b2 = new BigDecimal(0.2);
int c = b1.compareTo(b2);  // -1

if(a.compareTo(b) == -1){ System.out.println("a小于b"); }

if(a.compareTo(b) == 0){ System.out.println("a等于b"); }

if(a.compareTo(b) == 1){ System.out.println("a大于b"); }

if(a.compareTo(b) > -1){ System.out.println("a大于等于b"); }

if(a.compareTo(b) < 1){ System.out.println("a小于等于b"); }
 
c=1表示b1大于b2
c=0表示b1等于b2
c=-1表示b1小于b2
c!=-1 表示 b1大于等于b2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值