public static void main(String[] args) {
//最高金额
BigDecimal limit = new BigDecimal(10.11).setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal amount = new BigDecimal(32.21).setScale(2,BigDecimal.ROUND_HALF_UP);
if(MathUtils.compareTo(amount, limit) <= 0) {
//提现金额 未超过 最高提现额度
System.out.println("转账:" + amount);
}else {
//提现金额 超过 最高提现额度
BigDecimal divide = MathUtils.divide(amount, limit);
int divideInt = Integer.valueOf(divide.setScale(0,BigDecimal.ROUND_HALF_UP).toString()) + 1;
BigDecimal amountk = amount;
for(int k=0;k<divideInt;k++){
if(MathUtils.compareTo(amountk,limit) >= 0){
System.out.println("转账:" + limit);
amountk = MathUtils.subtract(amountk,limit);
}else if(MathUtils.compareTo(amountk,limit) < 0 && MathUtils.compareTo(amountk,BigDecimal.ZERO) > 0){
System.out.println("转账:" + amountk);
amountk = BigDecimal.ZERO;
}else {
break;
}
}
}
}
输出:
转账:10.11
转账:10.11
转账:10.11
转账:1.88