BigDecimal对象相加
BigDecimal a = new BigDecimal("1234.112");
BigDecimal b = new BigDecimal("2222.333");
BigDecimal c = a.add(b);
System.out.println(c);
结果:3456.445
注意:如果是带小数的,尽量先转成字符串再转BigDecimal
BigDecimal对象相减
BigDecimal a = new BigDecimal("1234.112");
BigDecimal b = new BigDecimal("2222.333");
BigDecimal c = a.subtract(b);
System.out.println(c);
结果:-988.221
BigDecimal对象相乘
BigDecimal a = new BigDecimal("1234.112");
BigDecimal b = new BigDecimal("2222.333");
BigDecimal c = a.multiply(b);
System.out.println(c);
结果:2742607.823296
BigDecimal对象相除
BigDecimal a = new BigDecimal("1234.112");
BigDecimal b = new BigDecimal("2222.333");
BigDecimal result = a.divide(b, RoundingMode.HALF_UP);
System.out.println(result);
结果:0.555
其中,a是被除数,b是除数,roundingMode是舍入模式,是为了防止精度丢失,具体使用取决于你的开发业务。
常量名 | 含义 |
---|---|
RoundingMode.UP | 向远离零的方向舍入 |
RoundingMode.DOWN | 向接近零的方向舍入 |
RoundingMode.CEILING | 朝正无穷大方向舍入 |
RoundingMode.FLOOR | 朝负无穷大方向舍入 |
RoundingMode.HALF_UP | 四舍五入,如果舍弃部分大于等于0.5,则进位 |
RoundingMode.HALF_DOWN | 四舍五入,如果舍弃部分大于0.5,则进位 |
RoundingMode.HALF_EVEN | 银行家舍入法,当舍弃部分左边的数字为奇数时,则进位(类似四舍六入五成双) |
RoundingMode.UNNECESSARY | 如果存在多余的小数位,则抛出ArithmeticException异常 |
总结
这篇博客是为了做笔记用的,因为老是忘记BigDecimal的使用方法,只记得加法和减法,特别是除法老是忘了怎么用。