[firebase-br] duvida campo numerico...

Sandro Souza escovadordebits em gmail.com
Ter Jul 10 11:41:01 -03 2012


Bom dia/tarde Felipe.

Meu nobre, que eu saiba, só temos disponíveis a precisão de 18 dígitos
no Firebird, sejam eles inteiros e/ou decimais.

Na definição de um campo do tipo NUMERIC ou DECIMAL, o primeiro valor,
entre parênteses, informa a quantidade total de dígitos, e não apenas
a quantidade de dígitos decimais.

Por exemplo, um NUMERIC(18,4), seria um valor com 18 dígitos no total,
mas desses 18, 4 dígitos são decimais, deixando o restante, ou seja,
14 dígitos, como inteiros.

Mesmo o tipo DOUBLE PRECISION só lhe dá 15 dígitos de precisão
(independente de serem inteiros e/ou decimais), além de ser apenas uma
aproximação numérica, ou seja, se você salvar o valor 1 (um), pode ser
salvo internamente, o valor 0.999999999999999.

Sempre prefiro usar o tipo NUMERIC e o DECIMAL porque são salvos
internamente como valores inteiros, ou seja, o máximo de precisão
possível.

Nesse seu caso específico, você necessita de 20 dígitos no total.
Acredito que você vá ter que salvá-los de outra forma. Dependendo do
cenário, poderia salvá-los como texto mesmo, ou seja, um VARCHAR, e
seria convertido em numérico por parte da aplicação.

Espero ter ajudado mais que atrapalhado. :D

Em 10 de julho de 2012 10:08,  <felipe em brainsoft.com.br> escreveu:
> bom dia.
>
> como faço para no firebird poder usar um campo numérico com 8 casas decimais
> ?!
>
>
>
> obrigado !
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa




Mais detalhes sobre a lista de discussão lista