// const P = 1000000; // 贷款本金
// const r = 4.2 / 100 / 12; // 月利率
// const n = 30 * 12; // 贷款期数
// let M = P * r * Math.pow(1 + r, n) / (Math.pow(1 + r, n) - 1); // 每月还款金额
// let remainingP = P; // 剩余本金
// const list = []
// for (let i = 1; i <= n; i++) {
// if (i === 24) {
// remainingP -= 100000; // 第24期提前还款10万
// M = remainingP * r * Math.pow(1 + r, n - i) / (Math.pow(1 + r, n - i) - 1); // 重新计算每月还款金额
// console.log(remainingP)
// }
// const interest = remainingP * r; // 第i月的还款利息
// const principal = M - interest; // 第i月的还款本金
// remainingP -= principal; // 更新剩余本金
// list.push([principal.toFixed(2), interest.toFixed(2), M]);
// // console.log(`第${i}月的还款本金:${principal.toFixed(2)},还款利息:${interest.toFixed(2)}`);
// }
// console.log(list);
const P = 1000000; // 贷款本金
const r = 4.2 / 100 / 12; // 月利率
const n = 30 * 12; // 贷款期数
const M = P * r * Math.pow(1 + r, n) / (Math.pow(1 + r, n) - 1); // 每月还款金额
let remainingP = P; // 剩余本金
const list = []
for (let i = 1; i <= n; i++) {
if (i === 24) {
remainingP -= 100000; // 第24期提前还款10万
}
const interest = remainingP * r; // 第i月的还款利息
const principal = M - interest; // 第i月的还款本金
remainingP -= principal; // 更新剩余本金
if (remainingP <= 0) {
console.log(`提前在第${i}期还清贷款`);
break;
}
list.push([principal.toFixed(2), interest.toFixed(2), M]);
console.log(`第${i}月的还款本金:${principal.toFixed(2)},还款利息:${interest.toFixed(2)}`);
}
console.log(list);
console