Формула, чтобы найти для базовых расчетов общих типов кредитов, таких как ипотека, автокредиты, студенческие кредиты или личные кредиты - PullRequest
0 голосов
/ 28 марта 2019

loan calculator

Я пытаюсь рассчитать EMI согласно приложенному скриншоту.но есть небольшая разница в моих расчетах.что я сделал ниже:

function interest($investment,$year,$rate=15,$n=1){
    global $total_result, $total_interest, $totalamount;
    $accumulated=0;
    if ($year > 1){
        $accumulated=interest($investment,$year-1,$rate,$n);
    }
    $accumulated += $investment;
    $rateC = $rate / 100;
    $result = $rateC / 12 * pow(1 + ($rateC) / 12, ($year * 12)) / (pow(1 + ($rateC) / 12, ($year * 12)) - 1) * $accumulated;
    $result = 85.60;
    for ($i=0; $i < 12; $i++) { 
        // echo round($accumulated,2).'<br>';
        $accumulated = $accumulated * pow(1 + $rate/(100 * $n),$n);
        $innntrest = ($accumulated - $investment) / 12;
        $i_result = $result - $innntrest;
        $accumulated = $investment - $i_result;
        $investment = $accumulated;

        echo '<br>***'.round($result,2).'***'.round($i_result,2).'***'.round($innntrest,2).'<br>';

        $total_result = $total_result + round($result,2);
        $total_interest = $total_interest + $i_result;
        $totalamount = $totalamount + $innntrest;

    }
    return $accumulated;
}

Where $investment=1000(loan amount), $year=1 (loan term), $rate=5%(interest rate), $n=4 (compound)

Итак, я хочу получить точный вывод в виде прикрепленного снимка экрана, поэтому кто-нибудь может мне помочь с этим кодом, чтобы узнать формулу?Заранее спасибо!

1 Ответ

0 голосов
/ 01 апреля 2019

После нескольких дней исследований я получил решение, как показано ниже:

function interest($investment,$year,$rate=15,$n=1,$payment_frequency=4){
    $accumulated=0;
    $accumulated += $investment;
    $rateC = $rate / 100;
    $total_i = 0;

    if($payment_frequency == 1) {
        $accumulated = $accumulated * pow(1 + $rate/(100 * $n),$n);
    } else {
        $rate = pow(1 + ($rateC/$n),($n*($year/($year*$payment_frequency)))) - 1;
        $result = ($rate*$accumulated)/(1 - pow((1 + $rate),-($year*$payment_frequency)));
        for ($i=0; $i < ($year*$payment_frequency); $i++) { 
            $accumulated = $accumulated * pow(1 + $rate/(100 * $n),$n);
            $innntrest = ($accumulated - $investment) * 100;
            $i_result = $result - $innntrest;
            $accumulated = $investment - $i_result;
            $investment = $accumulated;
            $total_i += $innntrest;
        }
        return $total_i;
    }
}
...