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



Dan,

It's the comma.  The following is taken from the RPG reference manual.

*-----------------------------------------------------------------
* If the character data is known to contain non-numeric characters
* such as thousands separators (like 1,234,567) or leading
* asterisks and currency symbols (like $***1,234,567.89), some
* preprocessing is necessary to remove these characters from the
* data.
*-----------------------------------------------------------------
D data s 20a inz('$1,234,567.89')
D num s 21p 9
/free
// Use the %XLATE builtin function to replace any currency
// symbol, asterisks or thousands separators with blanks
num = %dech(%xlate('$*,' : ' ' : data)
: 21 : 9);
// If the currency symbol or thousands separator might
// vary at runtime, use variables to hold these values.
num = %dech(%xlate(cursym + '*' + thousandsSep : ' ' : data)
: 21 : 9);

Rick

-----Original Message-----
From: Dan [mailto:dbcerpg@xxxxxxxxx]
Sent: Tuesday, March 18, 2003 10:38 AM
To: rpg400-l@xxxxxxxxxxxx
Subject: v5r2 %dec using character argument causing RNQ0105

On v5r2, trying to use %dec to convert a numeric expression in an alpha
field to a numeric, but am
getting RNQ0105: "A character representation of a numeric value is in
error".  I found no APARs
for this.  Any help would be appreciated!

Here is the relevent code:
  FWIPlist   if   f  132        disk
  FPD14WL#   o    e             disk
  IWIPlist   ns                    
  I                                105  117  wl_@xxxxxx
  I                                118  132  wl_estamt
  C                   Dou       *inLR     
  C                   Read      WIPlist                                LR
  C                   If        not *inLR 
  c                   Select              
  c                   When      wl_@xxxxxx = 'ESTIMATE AMT:'
  c                   Eval      w#_estamt = %dec( %trim(wl_estamt) : 13 : 2
)

Here is the relevent parts of the dump:
 NAME                  ATTRIBUTES           VALUE
 W#_ESTAMT             PACKED(15,2)         0000000000000.00
 WL_@xxxxxx            CHAR(13)             'ESTIMATE AMT:'
 WL_ESTAMT             CHAR(15)             '       3,793.00'
            VALUE IN HEX         '40404040404040F36BF7F9F34BF0F0'X


TIA, Dan

__________________________________________________
Do you Yahoo!?
Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop!
http://platinum.yahoo.com
_______________________________________________
This is the RPG programming on the AS400 / 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.

This thread ...

Follow-Ups:

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.