Edited Pictures
Problem Description
Format numbers for display using edited PIC clauses: Z, *, $, comma, period.
Expected Output
Formatted output: 1234567 -> $12,345.67
Hints
Z=zero suppress, *=check protect, $=currency.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. EDITPIC.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-AMOUNT PIC 9(7)V99 VALUE 1234567.89.
01 WS-NEGATIVE PIC S9(5)V99 VALUE -1234.56.
* Edited pictures for display
01 WS-EDIT1 PIC Z,ZZZ,ZZ9.99.
01 WS-EDIT2 PIC $$$,$$9.99.
01 WS-EDIT3 PIC **,***,**9.99.
01 WS-EDIT4 PIC -(6)9.99.
01 WS-EDIT5 PIC Z(5)9.99-.
01 WS-EDIT6 PIC $$$,$$$.99CR.
01 WS-SMALL PIC 9(3)V99 VALUE 12.34.
01 WS-EDIT7 PIC $ZZ9.99.
PROCEDURE DIVISION.
MOVE WS-AMOUNT TO WS-EDIT1.
DISPLAY "ZERO SUPPRESS: " WS-EDIT1.
MOVE WS-AMOUNT TO WS-EDIT2.
DISPLAY "FLOATING $: " WS-EDIT2.
MOVE WS-AMOUNT TO WS-EDIT3.
DISPLAY "CHECK PROTECT: " WS-EDIT3.
MOVE WS-NEGATIVE TO WS-EDIT4.
DISPLAY "LEADING SIGN: " WS-EDIT4.
MOVE WS-NEGATIVE TO WS-EDIT5.
DISPLAY "TRAILING SIGN: " WS-EDIT5.
MOVE WS-NEGATIVE TO WS-EDIT6.
DISPLAY "CR SYMBOL: " WS-EDIT6.
MOVE WS-SMALL TO WS-EDIT7.
DISPLAY "SMALL NUMBER: " WS-EDIT7.
STOP RUN.
Explanation:
Z=suppress zeros, *=check protect, $=float currency, -=sign, CR/DB=credit/debit.