|
Michael,
As I learned from this list the BIFs %INT() and %DEC() are
expecting character data of numeric data to be formatted in the same
manner you would get if you put a numeric value through %CHAR().
Try this example out,
d num s 8S 2
d char_num s 10A
/Free
num = 12345.78;
char_num = %char(num);
dsply char_num;
num = %dec(char_num:8:2)+.02;
dsply num;
num = -12345.78;
char_num = %char(num);
dsply char_num;
num = %dec(char_num:8:2)+.02;
dsply num;
*inlr = *on;
/End-free
I used "+.02" to show that the conversion from char to decimal works by
altering the result before DSPLY.
Unfortunately, if you are carrying the sign in the character like you
have shown, I do not believe there is direct solution. You could create
a DS that maps character to zone, like the following...
d mapper ds
d char_num 1 15A
d num 1 15S 2
/Free
char_num = ' 000000000255N';
dsply num;
*inlr = *on;
/End-free
The above is not very elegant and prone to data decimal errors.
Thanks, Matt
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Michael Jacobsen
Sent: Thursday, March 09, 2006 1:35 PM
To: RPG programming on the AS400 / iSeries
Subject: Re: How to convert character field w/ negative numeric data
(255N)
Alan,
That was a good suggestion, and something I hadn't thought of.
Unfortunately, that didn't fix the problem. I still receive the same
error with or without the spaces.
Oh well. I'll just use move if there is no other way.
Mike
rpg400-l-bounces@xxxxxxxxxxxx wrote on 03/09/2006 03:21:53 PM:
>
> Hi Michael - in this instance, I think its the leading spaces that is
> causing the problem, and not the N. So replace the blanks with 0
(zero)
and
> try it
>
>
>
> Alan Shore
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.