математика — Расчет процентов по обычному сберегательному счету Переполнение стека

Хорошо, у меня была такая же проблема в течение нескольких недель, и я не могу ее решить.

цель

Построить обычную систему сберегательного счета, где он распечатывает общий баланс в текущий момент.

проблема

Текущее уравнение у меня есть:

Если интерес 6% с пользователем, оплачивающим в 200 месяц с составом быть каждый месяц баланс будет через 6 месяцев 1,220.61

я получаю 1217,13

Я тестировал разные отрезки времени и много разных онлайн калькуляторов, мои расчеты всегда меньше.

Мой код

<h2>Total Balance To Date</h2>
<?php

$p = 0; // Starting amount
$i = 0.06; // Interest rate
$c = 12; // compound frequency set to monthly
$n = 6/12; // Current time invested set to 6 months
$r = 200; // Monthly investment is 200

$x = $i / $c;
$y = pow((1 + $x), ($n * $c));

if($p!=0)
{
$vf = $p * $y + ($r * ($y - 1) / $x);
}
else
{
$vf = 1 + $y + ($r * ($y - 1) / $x);
}

?>

<p>£<?php echo round($vf, 2, PHP_ROUND_HALF_UP); ?></p> // Comes out at 1217.13

ССЫЛКА на песочницу https://3v4l.org/9X7OH

1

Решение

настройка

q = pow(1.06 , 1.0/12) = 1.0048675505653430

и вычисления

200*(q+q^2+q^3+q^4+q^5+q^6) = 200*q*(q^6-1)/(q-1)

дает результат

1220.61037336530790

что, очевидно, с чем работали онлайн калькуляторы. Это немного неправильно, так как для номинальной процентной ставки, месячный сложный коэффициент должен быть

q = 1 + 0.06/12 = 1.005

в результате чего баланс через 6 месяцев

1221.1758776293781

Как видите, вы поняли формулу почти правильно, она должна быть

$vf = $p * $y + ($r * (1 + $x) * ($y - 1) / $x);

так как ставка депонируется в начале месяца, поэтому первая ставка составляется как r*(1+x)^6 и последний показатель как r*(1+x), Тем не менее, вторая формула в else ветка не имеет смысла вообще.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]