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 数组。 该数组必须至少包含一个负值(支出)和一个正值(收入)。

返回

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

例外

ValueArrayNothingValueArray 的轶 <> 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 现金流必须在整个投资过程中固定。

适用于

另请参阅