Financial.IRR(Double[], Double) 方法

定义

返回一个值,该值指定一系列定期现金流(支出和收入)的内部收益率。

public static double IRR (ref double[] ValueArray, double Guess = 0.1);
static member IRR : Double[] * double -> double
Public Function IRR (ByRef ValueArray As Double(), Optional Guess As Double = 0.1) As Double

参数

ValueArray
Double[]

必需。 指定现金流值的 Double 数组。 该数组必须至少包含一个负值(支出)和一个正值(收入)。

Guess
Double

可选。 指定 IRR 将返回的估算值的对象。 如果省略,Guess 便为 0.1 (10%)。

返回

一系列定期现金流(支出和收入)的内部收益率。

例外

Array 参数值无效或 Guess<= -1。

示例

在此示例中, IRR 函数返回数组 Values()中包含的一系列五个现金流的内部收益率。 第一个数组元素是表示业务启动成本的负现金流。 其余四个现金流表示后续四年的正现金流。 Guess 是估计的内部回报率。

' Define money format.
Dim MoneyFmt As String = "###,##0.00"
' Define percentage format.
Dim PercentFmt As String = "#0.00"

Dim values(4) As Double
' Business start-up costs.
values(0) = -70000
' Positive cash flows reflecting income for four successive years.
values(1) = 22000
values(2) = 25000
values(3) = 28000
values(4) = 31000

' Use the IRR function to calculate the rate of return.
' Guess starts at 10 percent.
Dim Guess As Double = 0.1
' Calculate internal rate.
Dim CalcRetRate As Double = IRR(values, Guess) * 100
' Display internal return rate.
MsgBox("The internal rate of return for these cash flows is " & 
    Format(CalcRetRate, CStr(PercentFmt)) & " percent.")

注解

内部收益率是投资收到的利率,包括定期发生的付款和收据。

函数 IRR 使用数组中值的顺序来解释付款和收据的顺序。 请务必按正确的顺序输入付款和收据值。 每个时期的现金流不需要固定,因为它用于年金。

IRR 按迭代计算。 从 的值 Guess开始, IRR 循环执行计算,直到结果准确到 0.00001% 以内。 如果在 IRR 20 次尝试后找不到结果,则失败。

适用于

另请参阅