1.加法
//付款账户+转账金额
FinanceAccount transferAccount = financeAccountService.getById(accountRecords.getTransferAccountId());
BigDecimal subtract = transferAccount.getTotal().add(accountRecords.getAmount());//"1000.00"+"2000.00"
transferAccount.setTotal(subtract);//"3000.00"
2.减法
//收款账户-转账金额
FinanceAccount account = financeAccountService.getById(accountRecords.getAccountId());
BigDecimal add = account.getTotal().subtract(accountRecords.getAmount());//"2000.00"-"1000.00"
account.setTotal(add);//"1000.00"
3.乘法
BigDecimal numA = new BigDecimal(0.05);
BigDecimal numB = new BigDecimal(0.06);
System.out.println("numA + numB = " + numA.multiply(numB));
BigDecimal numC = new BigDecimal(100);
BigDecimal numD = new BigDecimal(0.05);
System.out.println("numC + numD = " + numC.multiply(numD));
BigDecimal strA = new BigDecimal("100");
BigDecimal strB = new BigDecimal("0.05");
System.out.println("strA + strB = " + strA.multiply(strB));
打印结果:
numA + numB = 0.00300000000000000005551115123125782085820576136538628584587058372823258067807472571075777523219585418701171875
numC + numD = 5.00000000000000027755575615628913510590791702270507812500
strA + strB = 5.00
4.除法
BigDecimal monthTotal = "-91.28";
int daysOfMonth = DateUtil.getDaysOfMonth(new Date());
BigDecimal divisor = new BigDecimal(daysOfMonth).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal monthAvgRevenue = monthTotal.divide(divisor,2, RoundingMode.HALF_UP);
System.out.println("monthAvgRevenue = " + monthAvgRevenue);
5.取绝对值
BigDecimal add = "-91.23";
BigDecimal abs = add.abs();//"91.23"
6.取反
BigDecimal add = "91.23";
BigDecimal abs = add.negate();//"-91.23"