Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
💻 COBOL

COBOL Numeric Editing

Beginner 🕑 10 min read 👁 0 views

COBOL Numeric Editing

Numeric editing formats numbers for display with symbols, signs, and punctuation.

Edit Picture Characters

Character Meaning
Z Zero suppress
* Zero suppress with asterisk
$ Currency symbol
, Comma insertion
. Decimal point
- Trailing minus
+ Sign display
CR/DB Credit/Debit symbol
B Blank insertion
0 Zero insertion
/ Slash insertion

Zero Suppression

```cobol 01 WS-EDITED PIC ZZZ,ZZ9.99. MOVE 1234.56 TO WS-EDITED. Result: ' 1,234.56' ```

Floating Currency

```cobol 01 WS-AMOUNT PIC $$,$$$,$$9.99. MOVE 1234.56 TO WS-AMOUNT. Result: ' $1,234.56' ```

Check Protection

```cobol 01 WS-CHECK PIC ,,9.99. MOVE 1234.56 TO WS-CHECK. Result: '1,234.56' ```

Date Formatting

```cobol 01 WS-DATE-EDIT PIC 99/99/9999. MOVE 12252024 TO WS-DATE-EDIT. Result: '12/25/2024' ```

Code Example

       IDENTIFICATION DIVISION.
       PROGRAM-ID. NUM-EDIT-DEMO.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WS-AMOUNT PIC 9(5)V99 VALUE 1234.56.
       01 WS-NEG-AMT PIC S9(5)V99 VALUE -1234.56.
       01 WS-EDIT1 PIC ZZ,ZZ9.99.
       01 WS-EDIT2 PIC $$,$$$,$$9.99.
       01 WS-EDIT3 PIC **,***,**9.99.
       01 WS-EDIT4 PIC -ZZ,ZZ9.99.
       01 WS-EDIT5 PIC ZZ,ZZ9.99CR.
       01 WS-DATE-IN PIC 9(8) VALUE 12252024.
       01 WS-DATE-OUT PIC 99/99/9999.
       PROCEDURE DIVISION.
           MOVE WS-AMOUNT TO WS-EDIT1
           MOVE WS-AMOUNT TO WS-EDIT2
           MOVE WS-AMOUNT TO WS-EDIT3
           MOVE WS-NEG-AMT TO WS-EDIT4
           MOVE WS-NEG-AMT TO WS-EDIT5
           MOVE WS-DATE-IN TO WS-DATE-OUT
           DISPLAY 'Zero suppress: ' WS-EDIT1
           DISPLAY 'Float $: ' WS-EDIT2
           DISPLAY 'Check protect: ' WS-EDIT3
           DISPLAY 'Minus sign: ' WS-EDIT4
           DISPLAY 'CR symbol: ' WS-EDIT5
           DISPLAY 'Date: ' WS-DATE-OUT
           STOP RUN.