× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Wow, a google search on "RPG's fixed point precision rules" gives
Charle's post in first position 25minutes after he sent it.

Le 12 avril 2012 16:08, Charles Wilt <charles.wilt@xxxxxxxxx> a écrit :
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?
http://lmgtfy.com/?q=excel+precision+error

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
fantasy.

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.
http://c2.com/cgi/wiki?FloatingPointCurrency

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.

HTH,
Charles


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?

Thanks.
--
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,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.

--
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,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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

This mailing list archive is Copyright 1997-2024 by midrange.com 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].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.