Page 1 of 1

### Sort to convert PD to numeric

Posted: Tue Nov 08, 2011 6:20 pm
I have PD field of length s9(14)v99 I got it converted to numeric using the code

SORT FIELDS=COPY
OUTREC FIELDS=(1,558,
559,9,PD,EDIT=(TTTTTTTTTTTTTTTTS),SIGNS=(,,+,-),
568,33)

But instead of getting the values with decimal like 17688.54 I am getting like this
1768854

Please give suggestions on how to get the decimal points.

Posted: Tue Nov 08, 2011 8:09 pm
You need to specify the decimal point in your EDIT= (i.e. TTT.TTS) using asd many leading T's as needed.

Posted: Tue Nov 08, 2011 11:26 pm
archup20,

You can use a DFSORT OUTREC statement like this:

Code: Select all

``````  OUTREC FIELDS=&#40;1,558,
559,9,PD,EDIT=&#40;TTTTTTTTTTTTTTT.TTS&#41;,SIGNS=&#40;,,+,-&#41;,
568,33&#41;
``````

Posted: Wed Nov 09, 2011 9:56 am
Thanks DikDude and Frank. I got hte decimal point by using the below code

SORT FIELDS=COPY
OUTREC FIELDS=(1,558,
559,9,PD,EDIT=(sTTTTTTTTTTTTTT.TT),SIGNS=(,,+,-),
568,33)

But now I am getting too many leading zeroes and the negative signs are not visible.
Now 17688.54 comes like this 0000017688.54

I tried removing some leading T's but it is not working. Please suggest me on this.

Posted: Wed Nov 09, 2011 10:27 pm
You switched EDIT from a trailing sign to a leading sign, but you didn't fix SIGNS. For a leading sign, you need SIGNS=(+,-). If you don't want leading zeros, then use I instead of T. So you want something like this:

Code: Select all

``````  559,9,PD,EDIT=&#40;SIIIIIIIIIIIIIT.TT&#41;,SIGNS=&#40;,,+,-&#41;,
``````
This is all documented in the DFSORT books, so you can look it up and play with it until you get exactly what you want.

Posted: Thu Nov 10, 2011 10:25 am
Thanks Frank!!!

I included your suggestions in my sort card and it works perfectly for me now.