I've been curious about %int. What is the maximum size integer it could
return. For example, could it return like a 10u 0, a 10i 0, or even less
at maybe a 5i 0?
From: Barbara Morris <bmorris@xxxxxxxxxx>
To: rpg400-l@xxxxxxxxxxxx
Date: 07/11/2013 02:43 PM
Subject: Re: Split Number into whole and fractional parts
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
On 7/10/2013 9:00 PM, Roger Harman wrote:
WholeNum = %int(OriginalNum);
Fraction = OriginalNum - WholeNum;
Sam's values are small enough for %INT, but in general, it would be
better to establish a pattern of using %DEC for this kind of thing.
WholeNum = %dec(OriginalNum : 63 : 0);
Fraction = OriginalNum - WholeNum;
%DEC with 63 digits can handle the integer part of any RPG numeric
value. WholeNum and Fraction still have to be defined according to the
real size of OriginalNum, but by leaning towards %DEC with 63 digits
rather than %INT for getting the non-decimals part, we can reduce the
changes of needing a debug session when we someday use this pattern for
a value that won't fit in an integer.
A GetWholeNumber procedure would be good. It would return a 63:0 value,
hiding the 63-digit ickiness from the reader.
WholeNum = GetWholeNumber(OriginalNum);
Fraction = OriginalNum - WholeNum;
--
Barbara
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (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.