trabalhando-valores-monetários-moeda-com-php

Trabalhando com valores de moeda com PHP

Ao fazer uma aplicação que trabalhe com valores em moeda, nos deparamos com a situação de que o mysql só entende valores com ponto “.” para separar as casas decimais. E como nós aqui no Brasil utilizamos a vírgula, temos um pequeno probleminha chato para resolver…

Acho que nem preciso dizer que sempre que você for criar uma aplicação que trabalhe com valores de moeda, existirá essa situação para contornar. Portanto, se você estiver iniciando no PHP agora, vá se acostumando com isso.

Geralmente aplicativos comerciais, financeiros e econômicos trabalham com valores em moeda, e será preciso convertê-los para trabalhar internamente no sistema e também para exibir os números para os usuários.

Ex: R$57,58 -> você precisará inserir no BD 57.58, caso contrário, só será salvo o valor 57

Para inserir no BD um valor onde o usuário separa as casas decimais com vírgula

<?php
//valor passado via POST com vírgula
$get_valor = $_POST['valor'];
//verifica se o valor não possui ponto e contem vírgula
if(!strpos($get_valor,".") && (strpos($get_valor,",")))
//substitui ponto por vírgula
$get_valor = substr_replace($get_valor, '.', strpos($get_valor, ","), 1);

Pegar valor com ponto no BD e exibir numa página com vírgula

<?php
//substituímos o ponto pela vírgula dentro da variável
echo str_replace(".",",",$exibe['valor']);

Se você tiver qualquer dúvida a respeito de como trabalhar com moeda no PHP, basta deixar sua pergunta no campo destinado aos comentários logo abaixo, que terei prazer em lhe ajudar.

Este foi mais um artigo publicado originalmente em 17 de dezembro de 2009 no meu antigo blog BrasilPHP.net.

Hellston Linhares

Deixe um comentário

O seu endereço de e-mail não será publicado.