Financial.IRR(Double[], Double) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回一个值,该值指定一系列定期现金流(支出和收入)的内部收益率。
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
参数
- 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 次尝试后找不到结果,则失败。