2011-03-18 146 views
0

以下是我的函數來計算貸款支付, 就像在Excel中我需要添加另一個參數,這是付款類型。PMT功能付款方式

function PMT (ir, np, pv, fv) { 
/* 
ir - interest rate per month 
np - number of periods (months) 
pv - present value 
fv - future value (residual value) 
type - 0 or 1 need to implement that 
*/ 
pmt = (ir * (pv * Math.pow ((ir+1), np) + fv))/((ir + 1) * (Math.pow ((ir+1), np) -1)); 
return pmt; 
} 

隨着類型= 0,興趣計算1個月,因爲付款被假定爲在一個月的末尾。對於類型= 1,利息計算爲0個月,因爲付款是在月初。

任何人都可以幫助我用這個PaymentType功能修改上述功能。

http://www.techonthenet.com/excel/formulas/pmt.php

在此先感謝

+0

這是javascript代碼,對吧?如果是這樣,請刪除除javascript外的所有標籤。另外,你真正的問題是什麼。 – 2011-03-18 13:08:40

+0

如果這是.Net,則有一種方法(Financial.Pmt)可以爲您計算付款。其中一個論點是如何申請興趣(開始或結束)。 – dbasnett 2011-03-18 23:41:19

回答

2

我不知道你所需要的PaymentType,但在這裏我用在C#中PMT的功能,它是純C#PMT功能:

public static double PMT(double yearlyInterestRate, int totalNumberOfMonths, double loanAmount) 
{ 
    var rate = (double) yearlyInterestRate/100/12; 
    var denominator = Math.Pow((1 + rate), totalNumberOfMonths) - 1; 
    return (rate + (rate/denominator)) * loanAmount; 
} 

用法:

PMT(7, 360, 120000); 
// Result: 798.36 
PMT(4.5, 360, 137500.47); 
// Result: 696.69 
PMT(4.13, 360, 61520); 
// Result: 298.33 
PMT(6.38, 360, 89200); 
// Result: 556.78