In the May 1994 TechTalk, we published an RPG program (CVT001RG) that converts a numeric value to words for check writing. It accepts an eight-digit numeric value with two decimal positions (maximum value 999,999.99) in parameter one; it returns an 80-character output parameter containing the word form of the numeric value.
Several readers contacted us concerning a bug they found in the code. If the ten-thousands position of the numeric value contained a zero (e.g., 100,256.22 or 300,384.53), the word form of the value did not contain the word thousand. For example, the value 100,256.22 converted to ONE HUNDRED TWO HUNDRED FIFTY- SIX AND 22/100 instead of ONE HUNDRED THOUSAND TWO HUNDRED FIFTY-SIX AND 22/100. To correct the bug, insert the code contained in 9 after the first ENDIF operation.
Several readers contacted us concerning a bug they found in the code. If the ten-thousands position of the numeric value contained a zero (e.g., 100,256.22 or 300,384.53), the word form of the value did not contain the word thousand. For example, the value 100,256.22 converted to ONE HUNDRED TWO HUNDRED FIFTY- SIX AND 22/100 instead of ONE HUNDRED THOUSAND TWO HUNDRED FIFTY-SIX AND 22/100. To correct the bug, insert the code contained in Figure 9 after the first ENDIF operation.
Correction: Numbers-to-Words Program (May 94)
Figure 9 Code Segment to Fix RPG Program CVT001RG
* Insert this code segment after the first ENDIF operation of * CVT001RG as published in May 1994 * * If hundred-thousands position is greater than zero and * ten-thousands position is zero (e.g., 100,256.22), add the word * thousand from the compile-time array * *. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 C HTHO IFGT *ZEROS C TTHO ANDEQ*ZEROS C CAT A,101:1 WRDSWK C ENDIF
LATEST COMMENTS
MC Press Online