My first thought...

Why worry about it RPG when you don't appear to be worried about it Excel?

Are you under the impression that Excel is magical and thus doesn't
suffer from the same precision issues as any other piece of software?

Given that Excel apparently stores numbers as floating point and that
there are differences between floating point arithmetic and RPG's
fixed decimal arithmetic...expecting the same results is probably a

Personally, I'd consider RPG's fixed decimal answer "right" over
Excel's floating point answer when dealing with real world values
especially for currency.

However, if you want to consider Excel's floating point answer
"right", it would behoove you to use floating point variables in RPG
to match.

d myRate s 8f 0

The true "right" solution in my mind
1) use RPG fixed point
2) Understand RPG's fixed point precision rules
3) use %round() and/or %dec() as needed to control intermediate
results as you want.


On Thu, Apr 12, 2012 at 6:55 AM, Dave <dfx1@xxxxxxxxxxxxxx> wrote:
Hi all,

I recently asked how to access an EXCEL formula from an RPG program
but here I am now having to reproduce the EXCEL PMT function in RPG.
Maybe someone has already done this?
Anyway, I've been given a formula to code and an EXCEL spreadsheet to
control my results.

Which I've coded like this :

    MonthlyRate = interestRate /12;
     MonthlyPayment = ( LoanAmount / MonthlyRate ) *  ( 1 - ( 1 +
MonthlyRate ) ** ( -1  * numberOfPayments ));

LoanRemaining =
         12 * MonthlyPayment *
         1 - ( 1 + MonthlyRate ) ** ( -1 * numberOfPayments -
numberOfPaymentsMade ) /interestRate ;

My fields are defined so (imposed) :

LoanAmount,  MonthlyPayment, LoanRemaining 13S2
numberOfPayments, numberOfPaymentsMade 3 I 0

I've very little experience with RPG math and I'm worried about errors
from intermediate calculations
How should I define the rates MonthlyRate and interestRate so I don't
get any loss of information after the divisions?

This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].