Loan Payment Calculator
by Curtis Krauskopf
There are some programs that are universal to programming
-- the kind of program that everybody eventually makes.
One of those programs is a loan payment
calculator. As a student, you might need to calculate
a monthly loan payment for a class project, or as a
professional you might need to calculate it for the
finance department for your business, or you might need
it for yourself to find out the monthly payment for
a car loan or a house loan (mortgage) or a personal
loan.
The classic equation for calculating the monthly payment
for a loan is:
|
|
Payment = |
| intRate
* (
|
principal
paymentsPerYear |
|
) |
|
|
1 -
|
|
+ 1
|
| -(paymentsPerYear
* numYears)
| | |
| |
where...
- Payment
- is the monthly payment
- intRate
- is the interest rate. A 12% interest rate is 0.120.
- principle
- is the amount of money being loaned.
- paymentsPerYear
- is the number
of payments per year. For a monthly payment, this
will be 12.
- numYears
- is the number of years that the loan will be paid
back.
In the equation, (paymentsPerYear * numYears)
is the total number of payments for the loan. If the
loan has an unusual number of payments, such as 16,
that number can be substituted for (paymentsPerYear
* numYears).
Similarly, the Payment is assumed to be made
monthly (paymentsPerYear is 12). If payments
are made weekly, quarterly or for any other timeframe,
simply use the number of payments per week, quarter
or any other timeframe and the Payment amount
will adjust accordingly. For example, to make payments
quarterly, set paymentsPerYear to 4 and the
equation will still work.
The following example program implements the above
equation to calculate the monthly payment for a user-specified
principle, interest rate and number of payments.
To use it, compile it and then run it:
dfcomp FINANCE.src
dfrun FINANCE
Download finance.src
(2k)
/LoanCalculator
Loan Payment Calculator
Principle: _______.__ (amount of money being loaned)
Interest rate: ___.____ (12% = 12)
Number of payments: ____. (15 years of monthly payments = 180)
(30 years of monthly payments = 360)
Monthly Payment: _______.____
Press ESC to quit
/*
// Copyright (c) 2005 by Curtis Krauskopf
// >http://www.decompile.com
// This is a DataFlex character-mode style program.
// Permission to use, copy, modify, distribute and sell this software for any
// purpose is hereby granted without fee, provided that the above copyright
// notice appears in all copies of this file and in all modified versions
// of this file.
// The author makes no representations about the suitability of this
// software for any purpose. It is provided "as is" without express
// or implied warranty.
// Created: February 19, 2005 by Curtis Krauskopf (cdk)
// >http://www.decompile.com
//
// This program calculates the monthly payment for a loan.
// When the user provides the amount of money being loaned (the principle),
// the interest rate and the number of payments, the program calculates
// the monthly payment amount that will pay off the loan in the number
// of months specified by the user.
//
name nPrinciple
name nInterestRate
name iPayments
name nMonthlyPayment
repeat
number numerator
number denominator
number base exponent
number intRate
number paymentsPerYear
accept nPrinciple
accept nInterestRate
accept iPayments
move 12 to paymentsPerYear
movenum (nInterestRate / 100) to intRate
movenum (intRate * nPrinciple / paymentsPerYear) to numerator
movenum (-1 * paymentsPerYear * (iPayments / number(12))) to exponent
movenum ((intRate / paymentsPerYear) + 1.0) to base
movenum (1.0 - (base ^ exponent)) to denominator
movenum (numerator / denominator) to nMonthlyPayment
loop
keyproc key.escape
abort
|
when the program runs, it looks like this:
 |
 |
 |
 |
Loan Payment Calculator
Principle: __________
Interest rate: ________ (12% = 12)
Number of payments: _____ (15 years of monthly payments = 180)
(30 years of monthly payments = 360)
Monthly Payment: ____________
Press ESC to quit
|
 |
 |
 |
 |
This
article was written by Curtis Krauskopf (email at ).
Curtis Krauskopf is a software
engineer and the president of The Database Managers (www.decompile.com).
He has been writing code professionally for over 20 years. His prior projects include multiple web e-commerce applications,
decompilers for the DataFlex language,
aircraft simulators, an automated Y2K conversion program for over 3,000,000 compiled
DataFlex programs, and inventory control projects. Curtis has spoken at many domestic
and international DataFlex developer conferences and has been published in FlexLines
Online, JavaPro
Magazine, C/C++
Users Journal and C++
Builder Developer's Journal.
The Database Managers
helps companies to:- become more profitable
- grow their
business
- fix programs
that are behaving badly
- write new programs
to solve business problems
- do more with
fewer resources
Email them at
to find out how to make your company more successful.
|
Copyright 2003-2008 The Database Managers, Inc.
|