Калькулятор ипотеки в php неправильная сумма

Я работаю над простым кредитным калькулятором, настолько простым, что он даже не работает должным образом.

function calculatePayment($price, $down, $term)
{
    $loan = $price - $down;
    $rate = (4/100) / 12;
    $month = $term * 12;
    $payment = floor(($loan*$rate/1-pow(1+$rate,(-1*$month)))*100)/100;
    return $payment;
}

echo calculatePayment(200000,0,30);

этот вывод: 666.36

было бы здорово, если бы ежемесячный платеж по кредиту был таким (это не номер 666, но небольшое количество хаха), моя проблема в том, что это будет выше.

почему я получаю это?

Ответ 1

Я просто добавил put (1-pow (1 + $rate, (- 1 * $month))), потому что здесь происходит то, что $loan * $rate будет разделен на 1, а затем продолжит

function calculatePayment($price, $down, $term)
{
$loan = $price - $down;
$rate = (4/100) / 12;
$month = $term * 12;
$payment = floor(($loan*$rate/(1-pow(1+$rate,(-1*$month))))*100)/100;
return $payment;
}

echo calculatePayment(200000,0,30);

Ответ: 954.83

Ответ 2

$payment = floor(($loan*$rate/1-(pow(1+$rate,(-1*$month))))*100)/100;