Caro amigo, como voce pode ver no trecho do help, o tipo float não garante 
valores exatos por trabalhar com muitas casas após a virgula. Isto não e culpa 
do banco mas é uma característica do tipo float. Este mesmo erro vc terá em 
linguagens e bancos diversos que utilizam o tipo float.

Se vc deseja trabalhar com valores exatos, use u tipo numeric e especifique uma 
quantidade limitada de casas depois da virgula.

Aos feras da lista, por favor, me corrijam caso esteja falando besteira...


Inexact means that some values cannot be converted exactly to the internal 
format and are stored as approximations, so that storing and printing back out 
a value may show slight discrepancies. Managing these errors and how they 
propagate through calculations is the subject of an entire branch of 
mathematics and computer science and will not be discussed further here, except 
for the following points: 

If you require exact storage and calculations (such as for monetary amounts), 
use the numeric type instead. 


Cristiano Martins
Programador
Embrasil - Empresa Brasileira Distribuidora Ltda.
(31) 2191-9640
 
 
 
 

-----Mensagem original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome de Nestor Costa de 
Oliveira
Enviada em: quinta-feira, 31 de agosto de 2006 08:53
Para: [email protected]
Assunto: [PostgreSQL-Brasil] RES: Digest Brasil-Usuarios, volume 280,assunto 2

Bom dia amigos,

Bem, estou com um problema usando o "CASE" em um Select dentro da View.

A questão é que estou comparando 3 campos numéricos e no formato FLOAT 8.

Eu preciso retornar um Case simples:

CASE
 WHEN "qrybaseFechaShop4"."Qtd Chk" = "qrybaseFechaShop4"."Qtd Compl" AND
"qrybaseFechaShop4"."Qtd Chk" = "qrybaseFechaShop4"."Qtd Exp" THEN 1
   ELSE 0
 END AS "condição"

O nosso amigo postgre, esta fazendo o favor, de quando encontra alguns
registros com número Decimal ele fica louco!!!
Hora ele entende o Case e retorna corretamente se é 1 ou 0.
Mas também, tem casos em que os campos relacionados são iguais também e esta
retornando o valor errado na consulta.

Será que alguém tem alguma idéia do que pode estar ocorrendo???


Nestor C. de Oliveira
C.P.D.
Suporte Técnico
Nextel - 55*19663*75


_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios


_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a