# DECIMAL

DECIMAL fornece um numérico exato onde a precisão e a escala podem ter tamanhos arbitrários. Pode ser especificada a precisão (o número total de dígitos, tanto à esquerda quanto à direita do ponto decimal), e a escala (o número de dígitos da parte fracionária). A quantidade de armazenamento necessária é baseada na precisão.

#### Sintaxe

    { DECIMAL | DEC } [(precisão [, escala ])]

A precisão deve estar entre 1 e 31. A escala deve ser menor ou igual a precisão.

Quando a escala não é especificada, é utilizado o valor padrão igual a 0. Quando a precisão não é especificada, é utilizada a precisão padrão igual a 5.

A tentativa de colocar um valor numérico em um DECIMAL é permitida, desde que a precisão não fracionária não seja perdida. Ao remover os dígitos finais do valor DECIMAL, o Derby arredonda para baixo.

Por exemplo:

    -- esta conversão perde apenas a precisão fracionária
    VALUES CAST (1.798765 AS DECIMAL(5,2));
    1
    --------
    1.79
    -- esta conversão não cabe
    VALUES CAST (1798765 AS DECIMAL(5,2));
    1
    --------
    ERRO 22003: O valor resultante está fora da faixa para o tipo de dado
    DECIMAL/NUMERIC(5,2).

Quando misturado com outros tipos de dado nas expressões, o tipo de dado do resultado segue as regras mostradas em Promoção de tipo numérico nas expressões.

Consulte também Armazenamento de valores de um tipo de dado numérico em colunas de outro tipo de dado numérico.

Quando são misturados dois valores decimais em uma expressão, a escala e a precisão do valor resultante seguem as regras mostradas em Escala na aritmética decimal.

#### Tipo Java correspondente em tempo de compilação

java.math.BigDecimal

#### Tipo do metadado do JDBC (java.sql.Types)

DECIMAL

    VALUES 123.456

    VALUES 0.001

As constantes inteiras muito grandes para BIGINT são tornadas constantes DECIMAL.

Tópico pai: Tipos de dado
Conceitos relacionados
Visão geral dos tipos de dado nativos
Tipos numéricos
Referências relacionadas
Tipo de dado - atribuições e comparação, classificação e ordenação
BIGINT
BLOB
CHAR
CHAR FOR BIT DATA
CLOB
DATE
DOUBLE
DOUBLE PRECISION
FLOAT
INTEGER
LONG VARCHAR
LONG VARCHAR FOR BIT DATA
NUMERIC
REAL
SMALLINT
TIME
TIMESTAMP
VARCHAR
VARCHAR FOR BIT DATA