Salve! CREATE TABLE estoque_teste ( co_item float8 NOT NULL, co_estoque float8 NOT NULL, qt_estoque float8 NOT NULL, PRIMARY KEY(co_item));
INSERT INTO estoque_teste(co_item,co_estoque,qt_estoque) VALUES(1,1,150.5) UPDATE estoque_teste SET qt_estoque = qt_estoque - 150.4; SELECT * FROM estoque_teste O valor do campo qt_estoque, ao invés de ser 0.01 ficou 0,0999999999999943. Se o UPDATE for dessa maneira: UPDATE estoque_teste SET qt_estoque = qt_estoque::numeric - 150.4; O valor do campo fica correto, mas o CAST para numeric não é a forma correta de solucionar o problema. Imagino que seja algum problema de arredondamento e não sei se é possível definir a forma como o Postgresql arredonda. Não gostaria de mudar o tipo de dados da tabela, ela já esta alimentada e é muito grande! Fiz o teste nas versões 7.4.2 e 8.2. Em nenhum deu certo! Se alguém souber de algo ficarei grato Evandro _______________________________________________ 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
