Financial.Rate(Double, Double, Double, Double, DueDate, Double) 方法

定义

返回一个值,该值指定年金每期的利率。

public static double Rate(double NPer, double Pmt, double PV, double FV = 0, Microsoft.VisualBasic.DueDate Due = Microsoft.VisualBasic.DueDate.EndOfPeriod, double Guess = 0.1);
static member Rate : double * double * double * double * Microsoft.VisualBasic.DueDate * double -> double
Public Function Rate (NPer As Double, Pmt As Double, PV As Double, Optional FV As Double = 0, Optional Due As DueDate = Microsoft.VisualBasic.DueDate.EndOfPeriod, Optional Guess As Double = 0.1) As Double

参数

NPer
Double

必填。 年金中的付款期总数。 例如,如果按月还款四年期汽车贷款,则贷款总共有 4 * 12 (或 48) 付款期。

Pmt
Double

必填。 要支付每个周期的付款。 付款通常包含本金和利息,这些本金和利息在年金有效期内不会改变。

PV
Double

必填。 一系列未来付款或收据的现值或当前值。 例如,当你借钱买车时,贷款金额是贷款人每月支付汽车付款的现值。

FV
Double

Optional. 进行最终付款后所需的未来价值或现金余额。 例如,贷款的未来值为 \$0,因为这是最终付款后的值。 但是,如果你想节省 \$50,000 超过 18 年的子女教育,那么 \$50,000 是未来的价值。 如果省略,则假定为 0。

Due
DueDate

Optional. 指定付款到期时间的类型 DueDate 的对象。 如果付款在付款期结束时到期,或者DueDate.EndOfPeriod付款在期初到期,则此参数必须是DueDate.BegOfPeriod此参数。 如果省略, DueDate.EndOfPeriod 则假定为

Guess
Double

Optional. 估计的值由 Rate. 如果省略, Guess 则为 0.1 (10%)。

返回

年金的每期利率。

例外

NPer <= 0。

示例

此示例使用Rate函数计算给定付款总额()、贷款支付金额(TotPmtsPayment)、贷款现值或本金()、贷款的未来价值(PValFVal)、一个数字,指示付款是否在付款期的开始或结束时间(PayType) 和预期利率的近似值(Guess)。

Sub TestRate()
    Dim PVal, Payment, TotPmts, APR As Double
    Dim PayType As DueDate

    ' Define percentage format.
    Dim Fmt As String = "##0.00"
    Dim Response As MsgBoxResult
    ' Usually 0 for a loan.
    Dim FVal As Double = 0
    ' Guess of 10 percent.
    Dim Guess As Double = 0.1
    PVal = CDbl(InputBox("How much did you borrow?"))
    Payment = CDbl(InputBox("What's your monthly payment?"))
    TotPmts = CDbl(InputBox("How many monthly payments do you have to make?"))
    Response = MsgBox("Do you make payments at the end of the month?", MsgBoxStyle.YesNo)
    If Response = MsgBoxResult.No Then
        PayType = DueDate.BegOfPeriod
    Else
        PayType = DueDate.EndOfPeriod
    End If
    APR = (Rate(TotPmts, -Payment, PVal, FVal, PayType, Guess) * 12) * 100

    MsgBox("Your interest rate is " & Format(CInt(APR), Fmt) & " percent.")
End Sub

注解

年金是一段时间内的一系列固定现金付款。 年金可以是贷款 (,如住房抵押贷款) 或投资 (,如每月储蓄计划) 。

对于所有参数,现金支付 (如存款到储蓄) 用负数表示:收到的现金 ((如股息检查) )由正数表示。

Rate 按迭代计算。 从值 Guess开始, Rate 循环计算,直到结果准确到 0.00001% 以内。 如果在 Rate 20 次尝试后找不到结果,则失败。 如果猜测为 10% 且 Rate 失败,请尝试为 Guess其他值。

适用于

另请参阅