Picture Clauses


       DATA DIVISION.
       WORKING-STORAGE SECTION. 
       01 FIELD-X    PIC 9V99.
       01 FIELD-Y    PIC 9.99.

       PROCEDURE DIVISION.
           MOVE FIELD-X TO FIELD-Y.

FIELD-X FIELD-Y
123 1.23

The MOVE statement copies the contents of FIELD-X into FIELD-Y. Remember that the contents of FIELD-X are not changed by the MOVE statement.

FIELD-X takes up 3 bytes (characters) of storage space while FIELD-Y takes up 4 bytes. The implied decimal place in FIELD-X does not take up a storage byte, but the actual decimal point in FIELD-Y does.

Numeric and non-numeric fields

Alphanumeric fields may contain letters, digits, or other characters. Non-numeric literals are enclosed in quotes.

       DATA DIVISION.
       WORKING-STORAGE SECTION. 
       01 A-NUMERIC-FIELD          PIC 9(3).
       01 AN-ALPHANUMERIC-FIELD    PIC X(3).

       PROCEDURE DIVISION.
           MOVE 123 TO A-NUMERIC-FIELD.
           MOVE '123' TO AN-ALPHANUMERIC-FIELD.

Alphanumeric literals, which are enclosed in quotes, may consist of all digits. However, arithmetic cannot be performed on non-numeric fields.

       DATA DIVISION.
       WORKING-STORAGE SECTION. 
       01 FIELD-123            PIC 9(3)  VALUE 123.
       01 FIELD-ONETWOTHREE    PIC X(3)  VALUE '123'.

Alphanumeric fields
       DATA DIVISION.
       WORKING-STORAGE SECTION. 
       01 FIELD-A          PIC X(5).

  FIELD-A
MOVE 'COBOL' TO FIELD-A.
C O B O L
MOVE 'CS351' TO FIELD-A.
C S 3 5 1
MOVE 'ABCDEF' TO FIELD-A.
A B C D E
MOVE '12345' TO FIELD-A.
1 2 3 4 5
MOVE SPACES TO FIELD-A.
         
MOVE '$$$$$' TO FIELD-A.
$ $ $ $ $
Numeric fields
       DATA DIVISION.
       WORKING-STORAGE SECTION. 
       01 FIELD-N          PIC 9(5).

  FIELD-N
MOVE 12345 TO FIELD-N.
1 2 3 4 5
MOVE 123 TO FIELD-N.
0 0 1 2 3
MOVE 123.45 TO FIELD-N.
0 0 1 2 3
MOVE ZEROES TO FIELD-N.
0 0 0 0 0
MOVE 123456 TO FIELD-N.
2 3 4 5 6
Numeric fields with decimal places
       DATA DIVISION.
       WORKING-STORAGE SECTION. 
       01 FIELD-D          PIC 9(3)V9(2).

  FIELD-D
MOVE 123.45 TO FIELD-D.
1 2 3
4 5
MOVE 12345 TO FIELD-D.
3 4 5
0 0
MOVE .12345 TO FIELD-D.
0 0 0
1 2
MOVE 1 TO FIELD-D.
0 0 1
0 0
MOVE .1 TO FIELD-D.
0 0 0
1 0
MOVE 1.1 TO FIELD-D.
0 0 1
1 0
MOVE ZERO TO FIELD-D.
0 0 0
0 0
Zero suppression
       DATA DIVISION.
       WORKING-STORAGE SECTION. 
       01 FIELD-0    PIC 9(5).
       01 FIELD-Z    PIC ZZZZ9.

       PROCEDURE DIVISION.
           MOVE FIELD-0 TO FIELD-Z.

FIELD-0 FIELD-Z
12345 12345
00123   123
00001     1
00000     0
10022 10022
10000 10000

Spaces are printed instead of leading zeroes.


Cobol Home