最近做项目碰到了等额本金和等额本息的问题,若您不了解这两种方式 点这里看 否则直接跳过看代码,此代码也可以用于房贷计算器项目的开发。
等额本息计算公式:〔贷款本金×月利率×(1+月利率)^还款月数〕÷〔(1+月利率)^还款月数-1〕
等额本金计算公式:每月还款金额 = (贷款本金 ÷ 还款月数)+(本金 — 已归还本金累计额)×每月利率
其中^符号表示乘方。
举例说明
假设以10000元为本金、在银行贷款10年、基准利率是6.65%,比较下两种贷款方式的差异:
等额本息还款法
月利率=年利率÷12=0.0665÷12=0.005541667
月还款本息=〔10000×0.005541667×(1+0.005541667)^120〕÷〔(1+0.005541667)^120-1〕=114.3127元
合计还款 13717.52元
合计利息 3717.52万元
181.4511278796992481203007518797 1.12502104984600E+271 1.005541667^120-1 0.9409241291
等额本金还款法 :
每月还款金额 = (贷款本金÷还款月数)+(本金 — 已归还本金累计额)×每月利率
=(10000 ÷120)+(10000— 已归还本金累计额)×0.005541667
首月还款 138.75元 每月递减0.462元
合计还款 13352.71元
利息 3352.71元
等额本息
代码如下 |
复制代码 |
function debx()
{
$dkm = 240; //贷款月数,20年就是240个月
$dkTotal = 10000; //贷款总额
$dknl = 0.0515; //贷款年利率
$emTotal = $dkTotal * $dknl / 12 * pow(1 + $dknl / 12, $dkm) / (pow(1 + $dknl / 12, $dkm) - 1); //每月还款金额
$lxTotal = 0; //总利息
for ($i = 0; $i < $dkm; $i++) {
$lx = $dkTotal * $dknl / 12; //每月还款利息
$em = $emTotal - $lx; //每月还款本金
echo "第" . ($i + 1) . "期", " 本金:", $em, " 利息:" . $lx, " 总额:" . $emTotal, " ";
$dkTotal = $dkTotal - $em;
$lxTotal = $lxTotal + $lx;
}
echo "总利息:" . $lxTotal;
}
|
等额本金
代码如下 |
复制代码 |
function debj()
{
$dkm = 240; //贷款月数,20年就是240个月
$dkTotal = 10000; //贷款总额
$dknl = 0.0515; //贷款年利率
$em = $dkTotal / $dkm; //每个月还款本金
$lxTotal = 0; //总利息
for ($i = 0; $i < $dkm; $i++) {
$lx = $dkTotal * $dknl / 12; //每月还款利息
echo "第" . ($i + 1) . "期", " 本金:", $em, " 利息:" . $lx, " 总额:" . ($em + $lx), " ";
$dkTotal -= $em;
$lxTotal = $lxTotal + $lx;
}
echo "总利息:" . $lxTotal;
}
|