PHP – Como formatar moeda (R$/Real) com PHP

Fernando Valler 05/04/2020 PHP


Dificilmente um sistema não precise exibir valores para seus usuários, o padrão do banco de dados que seu sistema usa provavelmente será o da moeda USD (Dólar). Para exibirmos um valor em nosso padrão de formatação brasileiro, o Real (R$),  podemos usar a função number_format.

Exemplo de tranformação: 1200.43 para 1.200,43

// Formar valores para padrao brasileiro
function moeda($value, $precisao = 2) {

  if(empty($value))
    return '0';

  // Remove a virgula do valor
  $value = str_replace(',', '', $value);

  // Formata usando o numero de casas decimais desejado
  return number_format($value, $precisao, ',', '.');
}

Quando recebermos um valor informado pelo usuário ou que esteja com a formatação em Real precisamos converter para o padrão USD antes de mandar salvar no banco.

Exemplo de tranformação: 1.200,43 para 1200.43

// Formar valores para salvar no MySQL
function moedaMySQL($value, $precisao = 2) {

  if(empty($value))
    return '0';

  // Remove o ponto
  $value = str_replace('.', '', $value);
  // Troca o a virgula pelo ponto
  $value = str_replace(',', '.', $value);

  // Formata usando o numero de casas decimais desejado
  return number_format($value, $precisao, '.', '');
}

Conhece outra forma de fazer essa formatação, deixa ai nos comentários.
 


Fernando Valler - Programador Web
Fernando Valler

Sou programador web, motivado por desafios e sempre buscando aprender algo novo. Aqui você pode encontrar alguns projetos.