Я пытался использовать код выше, но результаты просто не совпадают с Excel (или Google Spreadsheet).
Я не знаю, нужно ли вам реализовать эту функцию, но в любом случаеЯ посмотрел на то, как был построен этот алгоритм, и, хотя я не смог получить доступ к исходному коду Excel (или к рабочему листу Google), я обнаружил, что это не простой расчет.Об этой математике можно прочитать больше:
https://brownmath.com/bsci/loan.htm#Eq8
Функция в PHP может выглядеть примерно так:
function rate($nprest, $vlrparc, $vp, $guess = 0.25) {
$maxit = 100;
$precision = 14;
$guess = round($guess,$precision);
for ($i=0 ; $i<$maxit ; $i++) {
$divdnd = $vlrparc - ( $vlrparc * (pow(1 + $guess , -$nprest)) ) - ($vp * $guess);
$divisor = $nprest * $vlrparc * pow(1 + $guess , (-$nprest - 1)) - $vp;
$newguess = $guess - ( $divdnd / $divisor );
$newguess = round($newguess, $precision);
if ($newguess == $guess) {
return $newguess;
} else {
$guess = $newguess;
}
}
return null;
}