PHP抵押贷款计算器加拿大

时间:2012-05-25 01:45:48

标签: php formula calculator

我刚刚找到抵押贷款计算器功能:

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

所以,如果我这样做:

calculatePayment(200000,0,25)

它还给我897.23 $。

问题在于,如果我与BMO Bank或​​duproprio.com计算器进行比较,看起来我的功能与其他2个网站的工作方式不同,结果是895,93 $。

有人可以帮我弄清楚为什么它没有返还好的金额吗?

非常感谢

3 个答案:

答案 0 :(得分:2)

我已将http://www.secureapp.com/tools/mortgage.html的余额计算部分转换为PHP函数(也是我添加了一个预付款变量)并给出了一个用法示例:

$principal = 684000; //Mortgage Amount 
$interest_rate = 2.89; //Interest Rate %
$down = $principal *0.10; //10% down payment
$years = 25;
$months = 0;
$compound = 2; //compound is always set to 2
$frequency = 12; //Number of months (Monthly (12), Semi-Monthly (24), Bi-Weekly(26) and Weekly(52) 

function calcPay($MORTGAGE, $AMORTYEARS, $AMORTMONTHS, $INRATE, $COMPOUND, $FREQ, $DOWN){
$MORTGAGE = $MORTGAGE - $DOWN;
$compound = $COMPOUND/12;
$monTime = ($AMORTYEARS * 12) + (1 * $AMORTMONTHS);
$RATE = ($INRATE*1.0)/100;
$yrRate = $RATE/$COMPOUND;
$rdefine = pow((1.0 + $yrRate),$compound)-1.0;
$PAYMENT = ($MORTGAGE*$rdefine * (pow((1.0 + $rdefine),$monTime))) / ((pow((1.0 + $rdefine),$monTime)) - 1.0);
if($FREQ==12){
    return $PAYMENT;}
if($FREQ==26){
    return $PAYMENT/2.0;}
if($FREQ==52){
    return $PAYMENT/4.0;}
if($FREQ==24){
    $compound2 = $COMPOUND/$FREQ;
    $monTime2 = ($AMORTYEARS * $FREQ) + ($AMORTMONTHS * 2);
    $rdefine2 = pow((1.0 + $yrRate),$compound2)-1.0;
    $PAYMENT2 = ($MORTGAGE*$rdefine2 * (pow((1.0 + $rdefine2),$monTime2)))/  ((pow((1.0 + $rdefine2),$monTime2)) - 1.0);
    return $PAYMENT2;
}
}

$payment = calcPay($principal, $years, $months, $interest_rate, $compound, $frequency, $down);

答案 1 :(得分:1)

而不是每月复合,每6个月复合抵押贷款。

加拿大抵押贷款每6个月复利一次而非每月复利。

  

除浮动抵押贷款外,所有抵押贷款按法律每半年复利一次。因此,如果您按揭贷款的比率为6%,则抵押贷款的实际年利率为6.09%,基于每半年3%。但是,您每月支付利息,因此您的抵押贷款人需要使用基于年利率低于6%的月费率。为什么?因为这个速度每月会复杂化。因此,我们需要找到每月复合的比率,结果有效率为6.09%。数学上,这将是:

(1 + rM)12-1 = 0.0609

rM =(1.0609)1/12

rM = 0.493862 ...%

来源:http://www.yorku.ca/amarshal/mortgage.htm

答案 2 :(得分:0)

你的计算还可以 - 这个抵押贷款计算器:http://aprc.eu/index.php?page=APR-loan-calculator

您的结果和引用的银行计算器的差异源于不同的假设。您使用的公式是每月付款在该月末。如果付款是在该月的开始,则迭代次数较低,因此付款也可能较低。