|
On Apr 15, 2016, at 11:52 AM, Stephen M. West <stephen.west@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
Raul,
I bow to your elegant and much more straight forward approach to
calculating CENTS. It is humbling to a see such a better coded statement.
Thanks.
Stephen West
------------------------------
-----Original Message-----
From: WDSCI-L [mailto:wdsci-l-bounces@xxxxxxxxxxxx] On Behalf Of Raul A
Jager W
Sent: Thursday, April 14, 2016 6:42 PM
To: wdsci-l@xxxxxxxxxxxx
Subject: Re: [WDSCI-L] Conversion to free-form
you can also do:
DOLLARS = %dec(dlrAmt:13:0);
CENTS = dlrAmt - dollars;
On 04/13/2016 02:34 PM, Stephen M. West wrote:
There is not a straight forward replacement in free-format for thefields.
Z-ADD opcode. An example of this is splitting a dollar amount into
the whole dollar value and the cents value and storing them as separate
EVAL.
The following example shows just how simple it is in [old]
fixed-column
RPG:
D DLRAMT S 10s 2 Inz(876.54)
D DOLLARS S 4p 0
D CENTS S 2p 2
C Z-ADD DLRAMT DOLLARS
C Z-ADD DLRAMT CENTS
Now, DOLLARS contains the value 876, and CENTS contains the value .54.
That was easy because Z-ADD opcode does not throw errors when the
receiver is too small to hold the full result. Instead, it truncates
in a way that RPG programmers have been able to exploit. Now so with
--
Now for the [new] free-format RPGLE version.
dcl-s DLRAMT zoned(10:2) inz(876.54);
dcl-s DOLLARS packed(4);
dcl-s CENTS packed(2:2);
DOLLARS = %dec(dlrAmt:13:0);
CENTS = %dec(%subst(%editc(dlrAmt:'X'):9:2):2:0) / 100;
Again, DOLLARS = 876, and CENTS = .54.
That was easy, too ... sort of.
MOVE is worse. There are 18 different types of conversions for MOVE.
Stephen West
Software Engineer
This is the Rational Developer for IBM i / Websphere Development Studio Client for System i & iSeries (WDSCI-L) mailing list
To post a message email: WDSCI-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/wdsci-l
or email: WDSCI-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/wdsci-l.
As an Amazon Associate we earn from qualifying purchases.
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.