Java写等额本金算法
时间: 2023-05-22 16:05:06 浏览: 72
以下是 Java 写等额本金算法的代码:
```java
import java.math.BigDecimal;
public class EqualPrincipal {
public static void main(String[] args) {
BigDecimal totalAmount = new BigDecimal("100000.00"); // 总贷款额
int totalMonths = 12 * 30; // 还款总月数
BigDecimal yearlyRate = new BigDecimal("0.049"); // 年利率
BigDecimal monthlyRate = yearlyRate.divide(new BigDecimal("12"), 8, BigDecimal.ROUND_HALF_UP); // 月利率
BigDecimal monthAmount = totalAmount.divide(new BigDecimal(totalMonths), 2, BigDecimal.ROUND_HALF_UP); // 每月还款本金
BigDecimal totalInterest = BigDecimal.ZERO; // 总利息
System.out.println("按等额本金计算,每月偿还本金为 " + monthAmount);
for (int i = 1; i <= totalMonths; i++) {
BigDecimal monthInterest = totalAmount.subtract(monthAmount.multiply(new BigDecimal(i - 1))).multiply(monthlyRate);
BigDecimal monthTotal = monthAmount.add(monthInterest);
totalInterest = totalInterest.add(monthInterest);
System.out.println("第 " + i + " 期还款:本金 " + monthAmount + " 元,利息 " + monthInterest.setScale(2, BigDecimal.ROUND_HALF_UP) + " 元, 月供 " + monthTotal.setScale(2, BigDecimal.ROUND_HALF_UP) + " 元");
}
System.out.println("总利息 " + totalInterest.setScale(2, BigDecimal.ROUND_HALF_UP) + " 元");
}
}
```
该代码采用等额本金的还款方式,计算总利息并输出每月还款金额。其中需要注意输入的参数为 BigDecimal 类型,且要设置好小数位数和舍入规则。