On 19-07-2012 16:11, Vinicius Santos wrote:
>     SELECT sua_coluna/1.00000000000000 FROM sua_tabela WHERE suas_condições;
>
>     Ajustando para sair o resultado da linha que você está suspeitando?
>
>
> Eu aumentei o número de zeros da divisão, até que sobrassem zeros à
> esquerda.
>
> Assim: SELECT valor/1.0000000000000000000000000000000000000000000000000
> FROM nova_tabela
> O resultado final foi:
> --------------------------------------------------------------------------------------------
> 355.5500000000000113686837721616029739379882812500000
> 355.5500000000000113686837721616029739379882812500000
>
>
> Agora assim:
> SELECT valor FROM nova_tabela WHERE valor  =
> 355.5500000000000113686837721616029739379882812500000
> O resultado final foi:
> --------------------------------------------------------------------------------------------
> 355.5500
> 355.5500
>
> Ou seja internamente tem este "lixo". Mas, porque?

O PostgreSQL tem uma resolução alta interna para o tipo numeric.
Provavelmente o valor foi resultado de um cálculo que gerou os decimais 
que você está vendo.

Recomendo que, na sua aplicação ou nas consultas que está fazendo, 
arredonde os valores no momento da operação de INSERT ou UPDATE.

Para consertar os valores atuais, o pessoal da lista já indicou funções 
de arredondamento pra você ajeitar num UPDATE.

[]s

Flavio Henrique A. Gurgel
Consultor e Instrutor 4Linux
Tel: +55-11-2125-4747
www.4linux.com.br

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a