Para arrendondar o resultado de um comando COMPUTE, usamos a opção ROUNDED diretamente
após o campo receptor.
Se for necessário verificar uma condição de erro, devemos usar a cláusula ON SIZE ERROR
como a última instrução.
Segundo exemplo:
05 VALOR-TRUNCADO PIC 9(002) VALUE ZEROES.
|
COMPUTE VALOR-TRUNCADO = 502 - 2
|
O resultado desta condição seria de OVERFLOW (o valor obtido é maior que o tamanho da PICTURE
definida para o campo receptor) no campo VALOR-TRUNCADO, pois o valor retornado
é 500 (quinhentos). Haveria um truncamento do dígito mais significativo, a posição das
centenas, e o valor do campo VALOR-TRUNCADO será 00 (zero zero).
Para nossa proteção contra esse tipo de truncamento, usamos a opção ON SIZE ERROR da seguinte maneira:
|
COMPUTE VALOR-TRUNCADO = 502 - 2
ON SIZE ERROR PERFORM 900-ERRO-CALCULO
END-COMPUTE.
|
|
Na rotina 900-ERRO-CALCULO codificamos as condições de erros necessárias.
|