COBOL Manual for TNS/E Programs (H06.08+, J06.03+)
Example 80 COMPUTE Statement
WORKING-STORAGE SECTION.
01 COMPUTE-RESULT PIC 999 VALUE ZEROS.
01 DIAGNOSTIC-FIELD PIC X(35).
01 WS-RESULT PIC S9(9) VALUE ZEROS.
01 WS-99 PIC S99 VALUE 99.
01 WS-FIVE-ONES PIC S9(5) VALUE 11111.
01 EXPONENT PIC 9(5) VALUE ZERO COMP.
01 A PIC 9(4)V99.
01 B PIC 9(4)V99 VALUE 8.
01 C PIC 9(4)V99 VALUE 5.
01 U PIC 9(4)V99 VALUE 7.
01 X PIC 9V99.
This statement specifies that the result be stored in COMPUTE-RESULT without being rounded:
COMPUTE COMPUTE-RESULT =
(((24.0 + 1) * (60 - 10)) / 125) ** 2
END-COMPUTE
(The result is 100.)
This COMPUTE statement specifies that the result be rounded and then stored in WS-RESULT:
MOVE 2 TO EXPONENT
COMPUTE WS-RESULT ROUNDED =
WS-99 / 10 * WS-99 ** EXPONENT + WS-FIVE-ONES
END-COMPUTE
(The result is 108,141.)
Example 81 Combination of IF and COMPUTE Statements
IF A > 0
COMPUTE X = B ** 2 - ( 4 * A * C ) / ( 2 * A)
ON SIZE ERROR
MOVE "DIVISION ERROR" TO DIAGNOSTIC-FIELD
END-COMPUTE
ELSE
MOVE "DIVISION BY ZERO" TO DIAGNOSTIC-FIELD
END-IF.
CONTINUE
CONTINUE is a no-operation statement.
CONTINUE 309










