java实现:花呗分3、6、12期计算用户每期手续费及每期总费用
上代码:
public static void flowers_(BigDecimal total,Integer periods){
// 换算步骤,总金额(单位:分)
BigDecimal totalAmount = total.multiply(new BigDecimal("100"));
System.out.println("换算总金额------" + totalAmount);
//1. 计算每期本金,向下取整
BigDecimal everyBj = totalAmount.divideToIntegralValue(new BigDecimal(periods.toString()));
System.out.println("每期本金------" + everyBj);
//2. 用户每期手续费
BigDecimal everySxf = new BigDecimal("0");
// 买家总费用
BigDecimal totalMj = new BigDecimal("0");
if(periods.intValue() == 3){
totalMj = totalAmount.multiply(new BigDecimal("0.023"));
}else if(periods.intValue() == 6){
totalMj = totalAmount.multiply(new BigDecimal("0.045"));
}else if(periods.intValue() == 12){
totalMj = totalAmount.multiply(new BigDecimal("0.075"));
}
BigDecimal totalMjQz = totalMj.setScale(0,BigDecimal.ROUND_HALF_EVEN);
System.out.println("买家总费用------" + totalMjQz);
everySxf = totalMjQz.divideToIntegralValue(new BigDecimal(periods.toString()));
System.out.println("用户每期手续费------" + everySxf);
//3. 用户每期总费用
BigDecimal totalMq = everyBj.add(everySxf);
System.out.println("用户每期总费用------" + totalMq);
//4.换算成元
BigDecimal lastValue = totalMq.divide(new BigDecimal("100"));
System.out.println("用户每期总费用元------" + lastValue);
}
说明:
1、入参total为总费用,periods为分期期数
2、花呗分期用户承担花呗分期率为:
3期--------------------------2.30%
6期--------------------------4.50%
12期-------------------------7.50%