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指定现金流值的数组。 该数组必须包含至少一个负值 (付款) 和一个正值 (收据) 。

返回

基于一系列定期现金流(付款和收据)和贴现率的投资净现值。

例外

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

适用于

另请参阅