Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal!
Estou tendo problemas para comparar se valores monetarios sao maiores ou menores no php, entao queria saber qual a forma correta de trabalhar com esse valores e comparar.
Eu tinha o valor de 1.200 no meu banco e comparei com 1.50 porem na comparação esta dizendo que 1.200 e menor que 1.50?
como devo tratar esses valores tanto na hora de comparar quanto na hora de inserir no banco de dados(mysql no caso)?
>
6 horas atrás, manoaj disse:
Eu tinha o valor de 1.200 no meu banco e comparei com 1.50 porem na comparação esta dizendo que 1.200 e menor que 1.50?
Veja: https://pt.wikipedia.org/wiki/Separador_decimal
Em programação em geral, o ponto é utilizado como separador decimal. Por isso 1.200 é menor que 1.50 (entenda também que não faz diferença quantos zeros existem à direita).
No fim das contas, a comparação que você está fazendo é a mesma que 1,2 com 1,5.
Esse é o problema específico que você está passando, mas há ainda outras questões, como o fato de o PHP fazer uso do sistema de ponto fluturante para separar o inteiro da parte fracionária.
Para isso, você deveria armazenar os dados em INT (sem o separador de casas decimais) ou com o DECIMAL, como dito no tópico citado acima, cada um tem suas vantagens e desvantagens.
E por fim, para manipular dinheiro no PHP, você poderia/deveria usar uma biblioteca. Sugiro essa: https://github.com/moneyphp/money
Muito Obrigado a pela ideia do campo, vou utilizar o campo INT entao , testei aqui e funcionou a única coisa q vou ter que fazer é formatar manualmente na hora de exibir, n quero ter de adicionar uma biblioteca pra fazer esse tipo de coisa pq o projeto é bem pequeno.
Consulte neste fórum:
ttps://forum.imasters.com.br/topic/139221-campo-tipo-moeda/