等额本息和等额本金的计算公式

570 查看

网上很多介绍公式的,给了php版的,需要自取

/**
 * 等额本息,计算总还款利息
 * @param $benjin 本金
 * @param $nianlv 贷款年利率
 * @param $month 贷款月数
 * @return mixed
 */
function benxi($benjin, $nianlv, $month) {
    $yueLv = $nianlv / 12;
    $oneMoth = $benjin * (($yueLv * pow((1 + $yueLv), $month)) / (pow((1 + $yueLv), $month) - 1));

    return $oneMoth*$month - $benjin;
}


/**
 * 等额本金,计算每个月的还款金额
 * @param $benjin 本金
 * @param $nianlv 年利率
 * @param $month 月份
 * @param $returnBenjin
 * @return float
 */
function oneMonthbenjin($benjin, $nianlv, $month,$returnBenjin){
    $yueLv = $nianlv / 12;
    return $benjin/$month +  ($benjin - $returnBenjin) * $yueLv;
}

/**
 * 等额本金还款方式
 * @param $benjin 本金
 * @param $nianlv 年利率
 * @param $month 总月数
 * @return float|int
 */
function benjin($benjin, $nianlv, $month){
    $i = 0;
    $all = 0;
    while($i < $month){
        $returnBenjin = $i * $benjin/$month ;
        $all += oneMonthbenjin($benjin, $nianlv, $month,$returnBenjin);
        $i ++ ;
    }
    return $all - $benjin;
}

echo benxi(10000, 0.0665, 120);
echo "\n";
echo benjin(10000, 0.0665, 120);
echo "\n";