PMT函数即年金函数,基于固定利率及等额分期付款方式,返回贷款的每期付款额,在计算时应确认所指定rate和nper单位的一致性。
语法
PMT(Rate, Nper, Pv, Fv, Type)。
语法参数
●Rate贷款利率(期利率)。
●Nper该项贷款的付款总期数(总年数或还租期数)。
● Pv现值(租赁本金),或一系列未来付款的当前值的累积和,也称为本金。
●Fv为未来值(余值),或在最后一次付款后希望得到的现金余额,如果省略Fv,则假设其值为零,也就是一笔贷款的未来值为零。
●Type数字0或1,用以指定各期的付款时间是在期初还是期末。1代表期初(先付:每期的第一天付),不输入或输入0代表期末(后付:每期的最后一天付)。
说明:
PMT 返回的支付款项包括本金和利息,但不包括税款、保留支付或某些与贷款有关的费用。
/**
* PMT公式
* @param rate 年利率
* @param nper 分期总数(月),
* rate 和 nper 单位的要一致。
* 例如,同样是四年期年利率为 12% 的贷款,如果按月支付,rate 应为 12%/12,nper 应为 4*12;
* 如果按年支付,rate 应为 12%,nper 为 4
* @param pv 借贷总金额
*/
public static double calculatePMT(double rate, double nper, double pv) {
double v = (1 + (rate / 12));
//double t = (-(nper / 12) * 12);
double t = -nper;
// v的t 次方
double pow = Math.pow(v, t);
//每期要还的金额
double result = (pv * (rate / 12)) / (1 - pow);
System.out.println("每期还款金额(本金+利息)= "+result);
//还款的总金额
double total = result * nper;
System.out.println("还款结束后,还款总金额(本金+利息) = "+total);
//还款的利息 (估算的免息金额)
double fee = total - pv;
System.out.println("还款结束后,还款手续费总金额 = "+fee);
return fee;
}
区别于PPMT函数:
PPMT函数是基于固定利率及等额分期付款方式,返回投资在某一给定期间内的本金偿还额。
语法
PPMT(rate,per,nper,pv,fv,type)
有关函数 PPMT 中参数的详细信息,请参阅函数 PV。
Rate 为各期利率。
Per 用于计算其本金数额的期数,必须介于 1 到 nper 之间。
Nper 为总投资期,即该项投资的付款期总数。
Pv 为现值,即从该项投资开始计算时已经入帐的款项,或一系列未来付款当前值的累积和,也称为本金。
Fv 为未来值,或在最后一次付款后希望得到的现金余额,如果省略 fv,则假设其值为零,也就是一笔贷款的未来值为零。
Type 数字 0 或 1,用以指定各期的付款时间是在期初还是期末。
Type 值 支付时间
0 或省略 期末
1 期初
参考:
1、百度百科