Enterprise COBOL for z/OS, Version 4.2
O compilador trata as declarações aritméticas como uma sucessão de operações executadas de acordo com a precedência do operador e configura campos intermediários
para conter os resultados dessas operações.
O compilador usa algoritmos para determinar o número de casas inteiras e decimais a serem reservadas.
Resultados intermediários são possíveis nos seguintes casos:
- Em uma instrução ADD ou SUBTRACT que contém mais de um operando imediatamente após o verbo
- Em uma instrução COMPUTE que especifica uma série de operações aritméticas ou vários campos de resultados
- Em uma expressão aritmética contida em uma declaração condicional ou em uma especificação de modificação de referência
- Em uma instrução ADD, SUBTRACT, MULTIPLY ou DIVIDE que usa a opção GIVING e vários campos de resultados
- Em uma instrução que usa uma função intrínseca como operando
Example: calculation of intermediate results -
Exemplo: cálculo de resultados intermediários
A precisão dos resultados intermediários depende se você compilar usando a opção padrão ARITH (COMPAT) (referido como modo de compatibilidade ou usando
ARITH (EXTEND) (referido como modo estendido).
No modo de compatibilidade, a avaliação das operações aritméticas é a mesma das versões do IBM COBOL antes do COBOL para OS / 390 e VM Versão 2, Versão 2:
- Um máximo de 30 dígitos é usado para resultados intermediários de ponto fixo.
- As funções intrínsecas de ponto flutuante retornam resultados de ponto flutuante de alta precisão (64 bits).
- Expressões que contêm operandos de ponto flutuante, expoentes fracionários ou funções intrínsecas de ponto flutuante são avaliadas como se todos os operandos
que não estão em ponto flutuante fossem convertidos em ponto flutuante de precisão longa e operações de ponto flutuante fossem usadas para avaliar a expressão.
- Literais de ponto flutuante e itens de dados de ponto flutuante externos são convertidos em ponto flutuante de alta precisão para processamento.
No modo estendido, a avaliação das operações aritméticas tem as seguintes características:
- Um máximo de 31 dígitos é usado para resultados intermediários de ponto fixo.
- As funções intrínsecas de ponto flutuante retornam resultados de ponto flutuante de precisão estendida (128 bits).
- Expressões que contêm operandos de ponto flutuante, expoentes fracionários ou funções intrínsecas de ponto flutuante são avaliadas como se todos os operandos que
não estão em ponto flutuante fossem convertidos em ponto flutuante de precisão estendida e operações de ponto flutuante fossem usadas para avaliar a expressão.
- Literais de ponto flutuante e itens de dados de ponto flutuante externos são convertidos em ponto flutuante de precisão estendida para processamento.
Floating-point literals and external floating-point data items are converted to extended-precision floating point for processing.
Conceitos relacionados:
© Copyright IBM Corp.