Fórum Campo DECIMAL #458783

18/10/2013

0

Pessoal, bom dia.

Estou desenvolvendo um sistema em PHP e MySQL. Estou com o seguinte problema:

Tenho um campo no meu banco de dados para o valor do aluguel, por ser tratar de reais, deixe com campo como DECIMAL(10,2). Se eu passar o valor 650,00, ele cadastra, sem problemas, 650. Porém, quando passo o valor 1.000,00, ele cadastra somente 1. Alguém sabe me dizer como posso resolver isso?


Abraço!
Abraão Almeida

Abraão Almeida

Responder

Posts

18/10/2013

Felippe Tadeu

Boa tarde, tudo bem ?

Verifique as configurações regionais do SO!

Eu até postei uma dúvida de como alterar o decimal de " . " para " , " mas ninguém soube resolver a dúvida, então eu acabei fazendo na mão, só que é desktop.

Por padrão R$1500,00 <> R$1500.00

O Mysql trabalha com configurações americanas.
Responder

Gostei + 0

18/10/2013

Abraão Almeida

Alaplaia, boa noite!

Eu consegui resolver o problema. O problema todo estava sendo por que o campo está como DECIMAL(10,2), e o valor que eu estava passando era, por exemplo, R$ 1.000,00. Baseado nisso, quando ele identificava o '.', automaticamente truncava o valor. Não cadastrando nada além do ponto no banco de dados. Então, eu fiz o seguinte.

$aluguel = str_replace('.','',$aluguel);

$aluguel = str_replace(',','.',$aluguel);

Então, primeiro eu verifico se há ponto. Se houver, substituo por vazio, sem espaço, claro. Depois, verifico se há vírgula. Se houver, substituo por ponto.

Fazendo assim, quando passo o valor, por exemplo, R$ 1.200,00, ele cadastra como 1200,00. Quando faço o retorno para exibição do sistema, apenas uso a função number_format() e tudo está resolvido!


Abraço!!!
Responder

Gostei + 0

23/10/2013

José

Olá amigo Abrão que bom que conseguiu solucionar sua duvida
e agradeço em nome de todos do fórum, por ter compartilhado a solução conosco.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar