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

定义

返回一个值,该值基于一系列定期现金流(支出和收入)和贴现率来指定投资的净现值。

public:
 static double NPV(double Rate, cli::array <double> ^ % ValueArray);
public static double NPV (double Rate, ref double[] ValueArray);
static member NPV : double * Double[] -> double
Public Function NPV (Rate As Double, ByRef ValueArray As Double()) As Double

参数

Rate
Double

必需。 每期的贴现率,以小数表示。

ValueArray
Double[]

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

返回

Double

基于一系列定期现金流(支出和收入)和贴现率的投资的净现值。

例外

ValueArrayNothing,排名为 ValueArray <> 1,或 Rate = -1

示例

此示例使用 NPV 函数返回数组 values()中包含的一系列现金流的净现值。 存储在中的 FixedRetRate返回值表示固定的内部返回率。

' 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 NPV function to calculate the net present value.
' Set fixed internal rate.
Dim FixedRetRate As Double = 0.0625
' Calculate net present value.
Dim NetPVal As Double = NPV(FixedRetRate, values)
' Display net present value.
MsgBox("The net present value of these cash flows is " & 
    Format(NetPVal, MoneyFmt) & ".")

注解

投资的净现值是未来一系列付款和收据的当前值。

NPV 函数使用数组中的值顺序来解释付款和收据的顺序。 请务必按正确的顺序输入付款和收据值。

投资 NPV 从第一个现金流值日期之前的一个时间段开始,以数组中最后一个现金流值结束。

净现值计算基于未来的现金流。 如果第一个现金流发生在第一个周期的开头,则必须将第一个值添加到返回 NPV 的值中,并且不得包含在现金流值的现金流值 ValueArray中。

NPV 函数类似于 PV 函数 (现值) ,但 PV 函数允许现金流在句点的末尾或开头开始。 与可变 NPV 现金流值不同, PV 在整个投资过程中必须固定现金流。

适用于

另请参阅