/**
* 纯商贷 等额本息 月供 贷款利息计算
* @param {*} rate 国家规定银行贷款基准利率 默认0.049
* @param {*} floatRate 贷款银行利率上浮率 0.2
* @param {*} year 贷款年限
* @param {*} cost 本金
*/
function payWayOne(rate, floatRate, year, cost){
let realYearRate = rate * ( 1 + floatRate);
console.info('实际年利率', realYearRate);
let monthRate = realYearRate / 12;
console.info('实际月利率', monthRate);
let monthPay = ( cost * monthRate * Math.pow(1 + monthRate, year * 12) )/( Math.pow( 1 + monthRate , year * 12) - 1);
console.info('月供', monthPay);
let totalPay = monthPay * year * 12;
console.info('总计支付', totalPay);
let totalInterest = totalPay - cost;
console.info('额外支付', totalInterest);
result = { cost, year, rate, floatRate, monthRate, monthPay, totalPay, totalInterest};
return result;
}
/**
* 纯商贷 等额本金 月供 贷款利息计算
* @param {*} rate 国家规定银行贷款基准利率 默认0.049
* @param {*} floatRate 贷款银行利率上浮率 0.2
* @param {*} year 贷款年限
* @param {*} cost 本金
* @param {*} payMonth 已付款月数
*/
function payWayTwo(rate, floatRate, year, cost, payMonth){
let realYearRate = rate * ( 1 + floatRate);
// console.info('实际年利率', realYearRate);
let monthRate = realYearRate / 12;
// console.info('实际月利率', monthRate);
let monthCost = cost / year / 12;
// 累计已支付本金(等额本金--每月本金不变)
let payTotal = 0.0
let payCost = monthCost * 0;
let historyPayCost = 0.0;
let historyPayTotal = 0.0;
let month = 1;
let monthPayDetail = [];
while(month <= (year * 12)){
let preMonthPay = (cost / (year * 12)) + ( cost - payCost ) * monthRate;
if(month <= payMonth){
historyPayCost += monthCost;
historyPayTotal += preMonthPay;
if(month === payMonth){
console.info('当前累计支付', historyPayTotal);
console.info('当前累计支付本金', historyPayCost);
}
}
payCost += monthCost;// 已支付本金
payTotal += preMonthPay;// 累计支付
monthPayDetail.push({ month, monthCost, payCost, payTotal, pay: preMonthPay, interest: (preMonthPay - monthCost), accInterest: (payTotal - payCost) });
month++;
}
console.info('累计支付', payTotal);
console.info('累计支付本金', payCost);
let totalInterest = payTotal - payCost;
console.info('总计支付利息', totalInterest);
return { cost, realYearRate, monthRate, monthCost, historyPayCost, historyPayTotal,
payMonth, historyInterest: (historyPayTotal - historyPayCost),
payCost, payTotal, totalInterest,
detail: monthPayDetail};
}
网友评论