[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кредитный калькулятор на PHP
Kuliev
Доброго времени суток всем...

В общем есть задача сделать кредитный калькулятор аннуетентного платежа.



<?[SPAN=darling]php[/SPAN]

//Процентная ставка
$procent = '18.9';

//Месяцев в году
$total_month = 12;

//Сумма кредита
$summa = 100000;

//Количество месяцев кредита
$month = 4;

//Коэффициент
$kof = ($procent / $total_month) / 100;

//Коэффициент
$k = ($kof * (pow((1 + $kof),$month))) / (pow((1 + $kof), $month) - 1);

//Аннуетентный платеж за месяц
$anu = sprintf("%01.2f",$k * $summa);

//Процент за месяц
$e = $kof * $summa;

//Основной долг
$dolg = $anu - $e;

//Процент за месяц
$p = array();

//Основной долг
$d = array();

//Остаток задолжности
$o = array();

$j = 1;


for($i = 1; $i <= $month; $i++)
{
if(empty($p))
{
$p[$j] = $kof * $summa; //1575.00

$d[$j] = $anu - $e; // 32813.80

$o[$j] = $summa - $dolg; //67186.20
}

else
{
if($i != $month)
{
$p[] = round($kof * $o[$i - 1], 2);

$d[] = round($anu - $p[$i], 2);

$o[] = round($o[$i - 1] - $d[$i], 2);
}

else
{
$p[] = round($kof * $o[$i - 1], 2);

$d[] = round($anu - $p[$i], 2);

$o[] = round($o[$i - 1] - $d[$i], 2);
}
}


}


echo '<pre>';
print_r($p);
echo '</pre>';

echo '<pre>';
print_r($d);
echo '</pre>';

echo '<pre>';
print_r($o);
echo '</pre>';

echo "<br>". array_sum($d);
echo "<br>". array_sum($o);
echo "<br>". array_sum($p);



Array
(
[1] => 1575
[2] => 1190.43
[3] => 799.81
[4] => 403.03
)

Array
(
[1] => 24417.07
[2] => 24801.64
[3] => 25192.26
[4] => 25589.04
)

Array
(
[1] => 75582.93
[2] => 50781.29
[3] => 25589.03
[4] => -0.01
)


100000.01
151953.24
3968.27


Для проверки расчетов я брал вот этот калькулятор в сети Кредитный калькулятор

В общем у меня уже голова кругом, не могу сделать также как на этом сайте, все время плавают несколько копеек, то в плюсе то в минусе!



Спустя 1 час, 20 минут, 18 секунд (1.12.2011 - 21:36) Nikitian написал(а):
Замените round на ceil. При рассчётах денег обычно так делают для предсаазуемости, а то куча мелких рассчётов могут по итогам в минус увести

Спустя 20 минут, 54 секунды (1.12.2011 - 21:57) Kuliev написал(а):
Nikitian
Не Ceil() не прокатывает, там чтото хитрое есть huh.gif

Спустя 13 часов, 40 минут, 27 секунд (2.12.2011 - 11:37) KonstantinK написал(а):
Не так давно делал класс для аналогичной задачи, там есть метод для стандартного и для аннуетентного расчетов платежей, могу выложить если это интересно.

Спустя 7 месяцев, 2 дня, 19 часов, 37 минут, 30 секунд (5.07.2012 - 07:15) Flame_of_Death написал(а):
KonstantinK
Скажите а для какого вида платежей Вы писали класс? или по обоим типам?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.