【PHP】元利均等返済ローンの計算式

元利均等返済方式の計算を行うPHPプログラム

住宅ローン等の金利方式で用いられる元利均等返済の計算をPHPで行う。

毎回の支払額を算出する

元利均等返済方式で返済回数と金利を条件に毎回(毎月)の支払額を求める式

毎回の支払額 = 月利 × ((1 + 月利) ^ 返済回数) × 元金 ÷ ((1 + 月利) ^ 返済回数) – 1

※ 月利(金利% ÷ 100 ÷ 12)

<?php

/**
 * @param int $loan_price 元金
 * @param int $count 返済回数
 * @param float $rate 金利(%)
 * @return int
 */
function calcEverypay(int $loan_price, int $count, float $rate)
{
    $month_rate = $rate / 100 / 12;

    $every_pay = $month_rate * ( ( 1 + $month_rate ) ** $count ) * $loan_price / ( ( (1 + $month_rate) ** $count ) - 1 );

    return floor($every_pay);
}

返済回数を求める

毎回の支払額、金利を条件に返済回数を求める式を作成する

毎回の支払額を求める式(再掲)
毎回の支払額 = 月利 × ((1 + 月利) ^ 返済回数) × 元金 ÷ ((1 + 月利) ^ 返済回数) – 1

この式を使って返済回数(x)を求める式に変換する

毎回の支払額 = 月利 × ((1 + 月利) ^ 返済回数x) × 元金 ÷ ((1 + 月利) ^ 返済回数x) – 1

月利 ×(1 + 月利)^返済回数x × 元金 = 毎回の支払額 × ((1 + 月利)^返済回数x) - 1

月利 ×(1 + 月利)^返済回数x × 元金 – 毎回の支払額 ×(1 + 月利)^返済回数x = - 1 (毎回の支払額)

月利 × 元金 – 毎回の支払額 ×(1 + 月利)^返済回数x = - 1 (毎回の支払額)

(1 + 月利)^返済回数x = 毎回の支払額 ÷ 毎回の支払額 – 月利 × 元金

返済回数x × log(1 + 月利) = log(毎回の支払額 ÷ 毎回の支払額 – 月利 × 元金)

返済回数x = log(毎回の支払額 ÷ 毎回の支払額 – 月利 × 元金) ÷ log(1 + 月利)

<?php

/**
 * @param float $rate 金利(%)
 * @param int $every_pay 毎回の支払金額
 * @param int $loan_price 元金
 * @return int
 */
function repaymentCount(float $rate, int $every_pay, int $loan_price)
{
    $month_rate = $rate / 100 / 12;
    
    $count = log($every_pay/ ($every_pay - $loan_price * $month_rate)) / log(1 + $month_rate);
    return round($count);
}

Follow me!