Skip to content

Modern Finance AnnuityPresentValueFactor

Paul Squires edited this page Oct 19, 2026 · 4 revisions

Home › Finance › Finance › AnnuityPresentValueFactor

AnnuityPresentValueFactor

Returns what one unit paid each period is worth today.

Syntax

AnnuityPresentValueFactor( ratePerPeriod, periods, timing )

Examples

#import "std/money"
using money

'' ( 1 - v^n ) / i -- what one unit per period is worth today.  Exposed
'' because it is the reusable piece the value functions are built from.
dim as Decimal i = DecimalParse( "0.10" ).Value( )

print AnnuityPresentValueFactor( i, 10, PAY_END_OF_PERIOD ).Value( ).ToStringFixed( 8 )  '' 6.14456711

'' AT A ZERO RATE THE LIMIT IS n, returned by an explicit test rather
'' than reached through a division by zero -- which is where most
'' time-value libraries return Invalid.
print AnnuityPresentValueFactor( DecimalZero( ), 10, PAY_END_OF_PERIOD ).Value( ).ToString( )   '' 10

'' No payments, no value.
print AnnuityPresentValueFactor( i, 0, PAY_END_OF_PERIOD ).Value( ).IsZero( )   '' true

Library: Finance
Category: Finance
Documented under: Nothing Becomes A Keyword
Source: pkg/std/money/fintvm.tiko in the tiko repository.

Clone this wiki locally