Enterprise COBOL for z/OS, V4.2, Language Reference
Após o alinhamento do ponto decimal, o número de casas na fração do resultado de uma operação aritmética é comparado com o número de casas fornecidas para a fração
do identificador resultante.
Quando o tamanho do resultado fracionário excede o número de locais fornecidos para seu armazenamento, o truncamento ocorre, a menos que ROUNDED seja especificado.
Quando ROUNDED é especificado, o dígito menos significativo do identificador resultante é aumentado em 1 sempre que o dígito mais significativo do excesso for
maior ou igual a 5.
Quando o identificador resultante é descrito por uma cláusula PICTURE que contém Ps mais à direita e quando o número de locais no resultado calculado excede o
número de posições inteiras especificadas, o arredondamento ou o truncamento ocorrem em relação à posição inteira à direita para a qual o armazenamento está
alocado.
Em uma operação aritmética de ponto flutuante, a frase ROUNDED não tem efeito; o resultado de uma operação de ponto flutuante é sempre arredondado.
Para obter mais informações sobre expressões aritméticas de ponto flutuante, consulte
Fixed-point contrasted with floating-point arithmetic
no Enterprise COBOL Programming Guide.
Quando a opção do compilador ARITH (EXTEND) está em vigor, a frase ROUNDED não é suportada para receptores aritméticos com posições de 31 dígitos à direita do
ponto decimal.<
Por exemplo, nem X nem Y abaixo são válidos como um receptor com a frase ROUNDED:
01 X PIC V31.
01 Y PIC P(30)9(1).
. . .
COMPUTE X ROUNDED = A + B
COMPUTE Y ROUNDED = A - B
Caso contrário, a frase ROUNDED é totalmente suportada para instruções aritméticas de precisão estendida.
© Copyright IBM Corp.