Re: [pgbr-geral] Poblema com float4

2007-08-16 Por tôpico Guilherme Augusto da Rocha Silva
Genuino,

para resolver o Poblema, recomendo a alteração de tipo de dado para NUMERIC.
Com NUMERIC, o valor sofre interferência.

Por exemplo, se a coluna precisa armazenar 3 dígitos à esquerda e 2 à direita 
do ponto (999.99), use NUMERIC(5,2).

Conceitualmente e na prática é mais coerente e seguro.

Abraço.

P.S.: poblema não existe, mas problema sim.


Em Quinta 16 Agosto 2007 09:00, [EMAIL PROTECTED] 
escreveu:
 Date: Wed, 15 Aug 2007 19:00:55 -0300 (ART)
 From: Genuino Teixeira [EMAIL PROTECTED]
 Subject: [pgbr-geral] Poblema com float4

 Olá,
   Estou usando a Version 8.0 do postgresql, e o encoding do banco de dados
 que eu uso é LATIN1. Em uma tabela tenho um campo float4 e quando insiro um
 dado do tipo 8.55 o banco arredonda para 8.6. 
   Alguém saberia como contornar este problema? Quando insiro 8.55 o valor
 deve permacer 8.55 e não ir para 8.6. 
   Vlw.



-- 

/*
Guilherme Augusto da Rocha Silva
Administração de Dados / Bancos de Dados

Gerência de Tecnologia da Informação
SIM Instituto de Gestão Fiscal
*/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Poblema com float4

2007-08-16 Por tôpico Osvaldo Rosario Kussama
Genuino Teixeira escreveu:
 Olá,
 Estou usando a Version 8.0 do postgresql, e o encoding do banco de 
 dados que eu uso é LATIN1. Em uma tabela tenho um campo float4 e quando 
 insiro um dado do tipo 8.55 o banco arredonda para 8.6.
  
 Alguém saberia como contornar este problema? Quando insiro 8.55 o valor 
 deve permacer 8.55 e não ir para 8.6.
  


O problema não é do PostgreSQL.

bdteste=# CREATE TEMP TABLE fuu(bar float4);
CREATE TABLE
bdteste=# INSERT INTO fuu VALUES(8);
INSERT 0 1
bdteste=# INSERT INTO fuu VALUES(8.5);
INSERT 0 1
bdteste=# INSERT INTO fuu VALUES(8.55);
INSERT 0 1
bdteste=# INSERT INTO fuu VALUES(8.555);
INSERT 0 1
bdteste=# INSERT INTO fuu VALUES(8.);
INSERT 0 1
bdteste=# SELECT * FROM fuu;
   bar

   8
 8.5
8.55
   8.555
  8.
(5 registros)

Verifique se você não está forçando um arredondamento:
bdteste=# SELECT to_char(bar,'999.9') FROM fuu;
  to_char
-
 8.0
 8.5
 8.6
 8.6
 8.6
(5 registros)

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Poblema com float4

2007-08-15 Por tôpico Genuino Teixeira
Olá,
  Estou usando a Version 8.0 do postgresql, e o encoding do banco de dados que 
eu uso é LATIN1. Em uma tabela tenho um campo float4 e quando insiro um dado do 
tipo 8.55 o banco arredonda para 8.6. 
   
  Alguém saberia como contornar este problema? Quando insiro 8.55 o valor deve 
permacer 8.55 e não ir para 8.6.
   
  Vlw.

   Flickr agora em português. Você clica, todo mundo vê. Saiba mais.___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral