Tipo de Dados ESQL DECIMAL

O tipo de dados DECIMAL inclui uma representação exata de um número decimal.Os decimais possuem precisão, escala e arredondamento. Precisão é o número total de dígitos de um número.
  • A precisão mínima é 1
  • A precisão máxima é 34
Escala é o número de dígitos à direita do ponto decimal.:
  • A escala mínima (-exponent) é -999.999.999
  • A escala máxima (-exponent) é +999.999.999

Não é possível definir precisão e escala ao declarar um DECIMAL, porque elas são designadas automaticamente. É possível apenas especificar precisão e escala ao lançar em um DECIMAL.

Escala, Precisão e Arredondamento

As seguintes regras de escala, precisão e arredondamento se aplicam:
  • A menos que o arredondamento seja requerido para manter dentro da precisão máxima, a escala do resultado de uma adição ou subtração é maior que as escalas dos dois operandos.
  • A menos que o arredondamento seja requerido para manter dentro da precisão máxima, a escala do resultado de uma multiplicação é a soma das escalas dos dois operandos.
  • A precisão do resultado de uma divisão é a menor do número de dígitos necessários para representar o resultado exatamente e a precisão máxima.
  • Todos os cálculos de adição, subtração, multiplicação e divisão são arredondados para os dígitos menos significativos, conforme necessário, para permanecer dentro da precisão máxima.
  • Todo arredondamento automático é do banker ou parcialmente simétrico. As regras disso são:
    • Quando o primeiro dígito eliminado for 4 ou menos, o primeiro dígito mantido ficará inalterado.
    • Quando o primeiro dígito eliminado for 6 ou mais, o primeiro dígito mantido será incrementado.
    • Quando o primeiro dígito eliminado for 5, o primeiro dígito mantido será incrementado se for ímpar e inalterado se for par. Portanto, 1,5 e 2,5 são arredondados para 2, enquanto 3,5 e 4,5 são arredondados para 4
    • Números negativos são arredondados de acordo com a mesma regra

Literais Numéricos de SQL

Os literais SQL que consistirem apenas em uma cadeia de dígitos sem aspas, ou seja, não contêm uma vírgula decimal nem um expoente (por exemplo 12345) serão do tipo INTEGER se forem pequenos o suficiente para serem representados como inteiros. Caso contrário, serão do tipo DECIMAL.

Os literais SQL que consistem em uma cadeia de dígitos sem aspas, opcionalmente uma vírgula decimal e um expoente (por exemplo 123e1) serão do tipo FLOAT se forem pequenos o suficiente para serem representados como flutuantes. Caso contrário, serão do tipo DECIMAL.

Os literais SQL que consistirem na palavra-chave DECIMAL e em uma cadeia de dígitos com aspas, com ou sem uma vírgula decimal e com ou sem um expoente serão do tipo DECIMAL, por exemplo, DECIMAL '42', DECIMAL '1.2346789e+203'.

As cadeias nesse tipo de literal também podem ter os valores:
  • 'NAN', não um número
  • 'INF', 'INFINITY'
  • '+INF', '+INFINITY'
  • '-INF', '-INFINITY'
  • 'MAX'
  • MIN'
(em qualquer mistura de maiúsculas e minúsculas) para denotar os valores correspondentes

Conceitos relacionados
Fluxos de Mensagem
Tipos de Dados ESQL
Mapeamentos

Tarefas relacionadas
Desenvolvendo Aplicativos do Fluxo de Mensagens
Desenvolvendo ESQL

Referências relacionadas
Nós Internos
Tipo de dados ESQL INTEGER
Tipo de Dados ESQL FLOAT