Share via


Pmt 函式

更新:2007 年 11 月

傳回 Double,指定以定期、固定付款及固定利率為基礎的年金支付。

Function Pmt( _
   ByVal Rate As Double, _
   ByVal NPer As Double, _
   ByVal PV As Double, _
   Optional ByVal FV As Double = 0, _
   Optional ByVal Due As DueDate = DueDate.EndOfPeriod _
) As Double

參數

  • Rate
    這是必要項。Double 指定每一期的利率。例如,如果您的汽車貸款年利率 (APR) 為 10% 並採月付方式償還,則每期的利率為 0.1/12,也就是 0.0083。

  • NPer
    這是必要項。Double 指定年金保險投資中付款的總期數。例如,如果您的四年期汽車貸款是採月付方式償還,則付款總期數就是 4 × 12 (即 48) 期。

  • PV
    必要項。Double 指定未來應支付的一連串付款的現值 (或總金額) 為當前價值。例如,當您貸款買車時,貸款金額就是您要以每月支付方式付給貸方的車款金額現值。

  • FV
    這是選擇項。Double 指定在最後一次付款之後,您想要的未來值或現金結存。例如,貸款的未來值為 $0,因為是代表最後一期付款之後的值。不過,如果您想要在 18 年期間存 50,000 美元做為子女教育費用,那麼 50,000 美元就是這個未來值。如果省略,則假設為 0。

  • Due
    選擇項。DueDate 列舉型別 型別的物件,指定付款何時到期。這個引數必須是 DueDate.EndOfPeriod (若付款期限是付款期間的結束日),或 DueDate.BegOfPeriod (若付款期限是付款期間的開始日)。如果省略,則假設為 DueDate.EndOfPeriod。

例外狀況

例外狀況類型

錯誤代碼

條件

ArgumentException

5

NPer = 0.

如果將使用非結構化錯誤處理的 Visual Basic 6.0 應用程式升級,請參閱「錯誤代碼」資料行 (您可以將錯誤代碼與 Number 屬性 (Err 物件) 比對)。但是,請盡可能考慮以 Visual Basic 的結構化例外處理概觀 取代這類錯誤控制項。

備註

年金是在一段期間內一連串的固定現金付款。年金可以是借貸 (例如房屋抵押貸款) 也可以是投資 (例如每月定存存單)。

Rate 和 NPer 引數必須使用以相同單位表示的付款週期計算。例如,如果 Rate 是以月計算,則 NPer 也必須以月來計算。

凡是引數,現金支出 (例如存款) 都以負數來表示,現金收入 (例如股息支票) 則以正數來表示。

範例

這個範例會使用 Pmt 函式,傳回固定期間內每月償還的貸款。前提是提供每一期的利率 (APR / 12)、付款總數 (TotPmts)、貸款的現值或本金 (PVal)、貸款的未來值 (FVal) 和表示付款時間是在付款期間開頭或結尾的數字 (PayType).。

Sub TestPMT()
    Dim PVal, APR, Payment, TotPmts As Double
    Dim PayType As DueDate
    Dim Response As MsgBoxResult

    ' Define money format.
    Dim Fmt As String = "###,###,##0.00"
    ' Usually 0 for a loan.
    Dim FVal As Double = 0
    PVal = CDbl(InputBox("How much do you want to borrow?"))
    APR = CDbl(InputBox("What is the annual percentage rate of your loan?"))
    If APR > 1 Then APR = APR / 100 ' Ensure proper form.
    TotPmts = CDbl(InputBox("How many monthly payments will you make?"))
    Response = MsgBox("Do you make payments at the end of month?", MsgBoxStyle.YesNo)
    If Response = MsgBoxResult.No Then
        PayType = DueDate.BegOfPeriod
    Else
        PayType = DueDate.EndOfPeriod
    End If
    Payment = Pmt(APR / 12, TotPmts, -PVal, FVal, PayType)

    MsgBox("Your payment will be " & Format(Payment, Fmt) & " per month.")
End Sub

需求

命名空間 (Namespace)︰Microsoft.VisualBasic

**模組︰**Financial

組件 (Assembly):Visual Basic Runtime Library (在 Microsoft.VisualBasic.dll 中)

請參閱

參考

財務摘要

ArgumentException