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.
{ 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.
-- 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.
java.math.BigDecimal
DECIMAL
VALUES 123.456 VALUES 0.001
As constantes inteiras muito grandes para BIGINT s??o tornadas constantes DECIMAL.