eu tenho um campo float (16,2) no banco de dados mais quando eu vou
inserir o valor
131629,60 ele nao insere ele insere 131629,59
o mais estranho que o 131629,61 ele aceita somente o numero 131629,60
que nao vai de jeito nenhum alguem sabe o pq?
Michel Candido
Programador de Sistemas WEB
Fone:84610712
msn:myche...@hotmail.com
--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.
"Que bom...." kkkat� o 5.0.alguma coisa nao tinha sido corrigido.... vai ver corrigiram...
Em 26 de mar�o de 2010 18:01, Luiz Escobar <esc...@megasistema.com.br> escreveu:
Usei :�������Campo Tipo Atributos Nulo
Padr�o Extra A��es float(10,2) N�o
ah, o arredondamento de campo float do mysql n�o � bug???tah bom...
Em 26 de mar�o de 2010 17:33, Luiz Escobar <esc...@megasistema.com.br> escreveu:
N�o � bem assim, n�o�tem nada haver com BUG....
mas usa o "DECIMAL(16,2)"��que resolve...�Mesma coisa que falar que deve-se usar o SHARED para abrir o arquivo compartilhado pq tem um BUG na linguagem....�leia mais pra saber as DIFs���[]sLuiz Escobar�����
Sent: Friday, March 26, 2010 3:37 PMSubject: Re: [php-brasil] Problemas com campo float mysql
usa numeric(16,2) que funciona.. isso � um bug antigo do mysql....
Em 26 de mar�o de 2010 15:32, Mychel Candido <mychel...@gmail.com> escreveu:
Boa tarde galera estou com um problema e nao estou achando nenhuma
solucao na net
eu tenho um campo float (16,2) no banco de dados mais quando eu vou
inserir o valor
131629,60 ele nao insere ele insere 131629,59
o mais estranho que o 131629,61 ele aceita somente o numero 131629,60
que nao vai de jeito nenhum alguem sabe o pq?
Michel Candido
Programador de Sistemas WEB
Fone:84610712
msn:myche...@hotmail.com
--
Voc� est� recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscri��o nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais op��es, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.
--
Maiquel Leonel
web developer
http://www.maiquelleonel.com.br
mai...@maiquelleonel.com.br / skywi...@gmail.com
--
Voc� est� recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscri��o nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais op��es, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.--
Voc� est� recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscri��o nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais op��es, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.
--
Maiquel Leonel
web developer
http://www.maiquelleonel.com.br
mai...@maiquelleonel.com.br / skywi...@gmail.com
--
Voc� est� recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscri��o nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais op��es, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.--
Voc� est� recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscri��o nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais op��es, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.
--
Maiquel Leonel
web developer
http://www.maiquelleonel.com.br
mai...@maiquelleonel.com.br / skywi...@gmail.com
--
Voc� est� recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscri��o nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais op��es, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.
UPDATE `wilsongps_test`.`numeric_test` SET `float` = '17536482.60' WHERE CONCAT( `numeric_test`.`decimal` ) = '123.90' AND CONCAT( `numeric_test`.`float` ) = 17.00 LIMIT 1 ;
| Campo | Tipo | Collation | Atributos | Nulo | Padrão | Extra | Ação | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| decimal(16,2) | UNSIGNED | Não | None |
|
|
| |||||||
| float(16,2) | UNSIGNED | Não | None |
|
|
|
INSERT INTO numeric_test
VALUES ( "123654.30", "123654.30"
), (
"18123654.80", "18123654.80"), (
"18123654.50", "18123654.50"
), (
"1918123654.70", "1918123654.70"
);
resultado :| decimal | float | |||
|---|---|---|---|---|
| 83.23 | 32.56 | |||
| 23.50 | 14.60 | |||
| 82.10 | 15.00 | |||
| 123.90 | 17536482.00 | |||
| 123654.30 | 123654.30 | |||
| 18123654.80 | 18123654.00 | |||
| 18123654.50 | 18123654.00 | |||
| 1918123654.70 | 1918123648.00 | |||
| Campo | Tipo | Collation | Atributos | Nulo | Padrão | Extra | Ação | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| decimal(16,2) | UNSIGNED | Não | None |
|
|
| ||||||||
| float(16,2) | UNSIGNED | Não | None |
|
|
|
INSERT INTO numeric_test_myisam
VALUES ( "123.60", "123.60"
), (
"123456.50", "123456.50"), (
"1123456.90", "1123456.90"
), (
"1123456.78", "1123456.78"
)| decimal_my | float_my | |||
|---|---|---|---|---|
|
|
|
123.60 | 123.60 | |
|
|
|
123456.50 | 123456.50 | |
|
|
|
1123456.90 | 1123456.88 | |
|
|
|
1123456.78 | 1123456.75 | |
Desculpa, esqueci de colocar a versão, essa era da 3.23 em MyISAM
usei o PHPMyADMIN para criar e add os dados....agora na 5.1.37
========================
Luiz Escobar (webmail)
O Diario Rádio e Televisão LTDA
------------- Segue mensagem original! -------------
De: maiquel krolikowski leonel
Data: Fri, 26 Mar 2010 18:25:44 -0300
Para: php-b...@googlegroups.com
Assunto: Re: [php-brasil] Problemas com campo float mysql
"Que bom...." kkkaté o 5.0.alguma coisa nao tinha sido corrigido.... vai ver corrigiram...
Em 26 de março de 2010 18:01, Luiz Escobar <esc...@megasistema.com.br> escreveu:
Usei :Campo Tipo Atributos Nulo
Padrão Extra Ações float(10,2) Não
![]()
decimal(10,2) Não
ah, o arredondamento de campo float do mysql não é bug???tah bom...
Em 26 de março de 2010 17:33, Luiz Escobar <esc...@megasistema.com.br> escreveu:
Não é bem assim, não tem nada haver com BUG....
mas usa o "DECIMAL(16,2)" que resolve...Mesma coisa que falar que deve-se usar o SHARED para abrir o arquivo compartilhado pq tem um BUG na linguagem....leia mais pra saber as DIFs[]sLuiz Escobar
Sent: Friday, March 26, 2010 3:37 PMSubject: Re: [php-brasil] Problemas com campo float mysql
usa numeric(16,2) que funciona.. isso é um bug antigo do mysql....
Em 26 de março de 2010 15:32, Mychel Candido <mychel...@gmail.com> escreveu:
Boa tarde galera estou com um problema e nao estou achando nenhuma
solucao na net
eu tenho um campo float (16,2) no banco de dados mais quando eu vou
inserir o valor
131629,60 ele nao insere ele insere 131629,59
o mais estranho que o 131629,61 ele aceita somente o numero 131629,60
que nao vai de jeito nenhum alguem sabe o pq?
Michel Candido
Programador de Sistemas WEB
Fone:84610712
msn:myche...@hotmail.com
--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.
--
Maiquel Leonel
web developer
http://www.maiquelleonel.com.br
mai...@maiquelleonel.com.br / skywi...@gmail.com
--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.
--
Maiquel Leonel
web developer
http://www.maiquelleonel.com.br
mai...@maiquelleonel.com.br / skywi...@gmail.com
--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.
--
Maiquel Leonel
web developer
http://www.maiquelleonel.com.br
mai...@maiquelleonel.com.br / skywi...@gmail.com
--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.
--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.
Usei as versão 3.23.xx e 5.1.xx porem com tabelas MyISAM e o exemplo de um amigo aqui era em InnoDB... vamos ver , vou testar as querys dele nas 4 possíveis opções...[]sLuiz Escobar
Floating-point
numbers sometimes cause confusion because they are approximate and not stored as
exact values. A floating-point value as written in an SQL statement may not be
the same as the value represented internally. Attempts to treat floating-point
values as exact in comparisons may lead to problems. They are also subject to
platform or implementation dependencies. The FLOAT and DOUBLE data types are subject to these issues.
Before MySQL 5.0.3, DECIMAL comparison operations are approximate
as well.
Tradução GOOGADA...
B.5.5.8. Problemas com ponto flutuante de
Valores
Números de ponto flutuante por
vezes, causar confusão, porque eles são aproximados e não armazenados como
valores exatos. Um valor de ponto flutuante como
escrito em uma instrução SQL não pode ser o mesmo que o
valor representado
internamente. As tentativas de tratar valores
de ponto flutuante como exato em comparações
levar a problemas. Eles também estão sujeitos a
plataforma ou dependências de execução. O flutuador eo
DUPLO tipos de dados estão
sujeitos a estas questões. Antes do MySQL 5.0.3, operações
de comparação DECIMAL
são aproximados
também.
O teste que fiz foi um pouco diferente, acho q por isso que funcionou, sempre com o banco vazio inserindo 2 linhas parece funcionar, porem com mais dados como do amigo, ai já apresenta o problema...
É, vivendo e aprendendo, mais uma pro caderninho, obrigado, eu sempre usei BIGINT e DECIMAL, por isso nunca tive problemas e nem fui atrás ...
[]s
Luiz Escobar
From: Elton Schivei CostaSent: Saturday, March 27, 2010 11:45 AM
MySQL
suporta todos os tipos numéricos da ANSI/ISO SQL92. Estes tipos incluem o tipos
de dados numéricos exatos (NUMERIC, DECIMAL, INTEGER, e SMALLINT), assim como o tipos de dados numéricos
aproximados (FLOAT, REAL, eDOUBLE PRECISION). A palavra-chave INT é um
sinônimo para INTEGER, e a palavra-chave DEC é um
sinônimo paraDECIMAL.
Os
tipos NUMERIC e DECIMAL são
implementados como o mesmo tipo pelo MySQL, como permitido pelo padrão SQL92.
Eles são usados por valores para os quais é importante preservar a exatidão
como, por exemplo, dados monetários. Quando é declarado um campo de algum desses
tipos a precisão e a escala podem ser (e normalmente é) especificadas; por
exemplo:
From: Elton Schivei CostaSent: Saturday, March 27, 2010 11:45 AM