Name

NPV Function

Class

Microsoft.VisualBasic.Financial

Syntax

NPV(rate, valuearray(  ) )
rate

Use: Required

Data Type: Double

The discount rate over the period, expressed as a decimal

valuearray ( )

Use: Required

Data Type: Double

An array of cash flow values

Return Value

A Double specifying the net present value

Description

Calculates the net present value of an investment based on a series of periodic variable cash flows (payments and receipts) and a discount rate.

The net present value is the value today of a series of future cash flows discounted at some rate back to the first day of the investment period.

Rules at a Glance

  • rate must be a percentage expressed as a decimal. For example, 10% is expressed as 0.10.

  • values is a one-dimensional array that must contain at least one negative value (a payment) and one positive value (a receipt).

  • The NPV investment begins one period before the date of the first cash flow value and ends with the last cash flow value in the array.

  • NPV requires future cash flows. If the first cash flow occurs at the beginning of the first period, the first value must be added to the value returned by NPV and must not be included in values.

Programming Tips and Gotchas

  • rate and the individual elements of values must reflect the same time period. For example, if values reflects annual cash flows, rate must be the annual discount rate.

  • Individual members of values are interpreted sequentially. That is, values(0) is the first cash flow, values(1) is the second, etc. ...

Get VB .NET Language in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.