CNLMath : Special Functions : net_present_value
net_present_value
Evaluates the net present value of a stream of unequal periodic cash flows, which are subject to a given discount rate.
Synopsis
#include <imsl.h>
float imsl_f_net_present_value (float rate, int count, float values[])
The type double function is imsl_d_net_present_value.
Required Arguments
float rate (Input)
Interest rate per period.
int count (Input)
Number of cash flows in values.
float values[] (Input)
Array of size count of equally-spaced cash flows.
Return Value
The net present value of an investment. If no result can be computed, NaN is returned.
Description
Function imsl_f_net_present_value computes the net present value of an investment. Net present value is the current value of a stream of payments, after discounting the payments using some interest rate.
It is found by solving the following:
where valuei= the i-th cash flow.
Example
In this example, imsl_f_net_present_value computes the net present value of a $10 million prize paid in 20 years ($500,000 per year) with an annual interest rate of 6%.
 
#include <stdio.h>
#include <imsl.h>
 
int main()
{
float rate = 0.06;
int count = 20;
float value[20];
float net_present_value;
int i;
 
for (i = 0; i < count; i++)
value[i] = 500000.;
 
net_present_value = imsl_f_net_present_value (rate, count, value);
 
printf ("The net present value of the $10 million prize is $%.2f.\n",
net_present_value);
}
Output
 
The net present value of the $10 million prize is $5734963.00.