Como formatar número inteiro para decimal no formato brasileiro em PHP

Veja neste artigo como criar uma função em PHP para formatar um número inteiro como decimal com duas casas decimais e separador de milhar no padrão brasileiro (separador de decimais como vírgula e separador de milhar como ponto).

Qual a necessidade dessa função?

Na hora de montar uma aplicação Web, muitas vezes nos deparamos com a necessidade de formatar um número inteiro para decimal com duas casas decimais e com separador de milhar , no formato brasileiro (vírgula como separador de decimal e ponto como separador de milhar), especialmente para apresentação de dados em formato de relatório ou tabela. Essa necessidade se deve muitas vezes porque a formatação original dos números decimais no PHP é derivada da formatação americana (ponto como separador de decimal e vírgula como separador de milhar) e isso pode confundir o usuário na hora de exibir os dados na tela.

Neste artigo iremos ver como criar uma função em PHP, que faz essa formatação no padrão brasileiro e tornar sua aplicação mais profissional.

Como instalar o servidor Apache e configurar as pastas da aplicação

Antes de mais nada, para rodarmos e testarmos a aplicação, é necessário termos um servidor na nossa máquina, para rodar a aplicação localmente (no caso do PHP, é necessário um servidor Apache instalado na máquina). Uma boa opção para instalar o servidor Apache, é baixar o XAMPP , que é um pacote que acompanha o servidor Apache, PHP e MySQL - disponível no site http://www.apachefriends.org/pt_br/xampp.html . Como padrão, o XAMPP será instalado no diretório C:\xampp.

Os arquivos salvos devem ficar na pasta C:\xampp\htdocs\[diretório da aplicação]\ ou C:\xampp\htdocs, caso se queria rodar a aplicação direto do diretório raiz.

Para padronizar a aplicação e a função que iremos fazer, vamos criar uma pasta dentro de C:\xampp\htdocs para salvar os arquivos. Esta pasta se chamará inteiro_decimal_br.

Como criar a função

Na criação do código abaixo, ressalto a importância dos seguintes itens:
Na hora de escrever o código em PHP, ele deve ser aberto pela tag <?php e fechado pela tag ?>.

Devemos levar também em consideração os seguintes itens:

Docblox: é um bloco de comentário onde você especifica de forma resumida o que a função faz, o parâmetro que a função receberá, e o que ela retorna.

Isso facilita muito o entendimento do que a função faz, principalmente em editores de PHP como PHPDesigner ou IDEs de desenvolvimento como o NetBeans, pois eles lêem os dados do docblox e mostram informações sobre o que a função faz, o parâmetro que deve receber e o que a função retorna.

A sintaxe do docblox segue essa ordem:

Listagem 1: Sintaxe do docblox

/**
     * Comentário sobre o que faz a função
     *
     *@param [tipo de variável do parâmetro] [nome do parâmetro] [comentário sobre o parâmetro]
     * 
     *@return [tipo de variável que a função retorna]
     *
     **/

Vamos criar a função com o nome inteiro_decimal_br e esta receberá a variável $numero como parâmetro:function inteiro_decimal_br($numero).

Essa função pode ser escrita num IDE de desenvolvimento como o Netbeans, um editor de páginas como o PHP Designer ou Dreamweaver, ou mesmo no bloco de notas (neste caso, você salva o arquivo como texto e depois renomeia ele com a extensão PHP).
Essa função possuirá duas linhas de código:

Listagem 2: Primeira linha da função


    $numero = number_format($numero, 2, ',','.');
    

Nessa linha, a variável $numero irá receber o resultado da função nativa do PHP (já própria da linguagem PHP) number_format() do parãmetro $numero (esse parâmetro pode ser especificado por formulário via POST ou GET, ou especificado dentro do código da própria aplicação).

A função number_format é constituída dos seguintes parâmetros: number_format([número a ser formatado],[quantidade de casas decimais],[indicador de decimal],[separador de milhar]). Ao escrever a linha de código acima, você estará formatando a variável número com duas casas decimais, vírgula (,) como indicador de decimais e o ponto (.) como separador de milhar. E atribuirá à variável $numero, o valor do parâmetro já com a formatação especificada.

Listagem 3: Segunda linha da função


    return $numero;
    

Essa linha irá retornar o resultado da variável $numero da função acima.

Código final da função

A sua função deverá ficar como está o código abaixo:

Listagem 4: Código final da função


    /**
     * Formata número inteiro para decimal com duas casas e com separador de milhar
     *
     * @param integer $numero inteiro a ser formatado
     *
     * @return string
     */
    
    function inteiro_decimal_br($numero)
    {
        $numero = number_format($numero, 2, ',', '.'); 
        return $numero;
    }
    
    ? >
    

Com a função em mãos, podemos salvar o código. Salvaremos como formata_inteiro_decimal_br_tela.php dentro de C:\xampp\htdocs\inteiro_decimal_br.

Como criar a aplicação e chamar a função

Iremos criar uma aplicação de demonstração simples para mostrar a função em funcionamento.

Antes de escrevermos o código, paremos para analisar o que cada linha do código da aplicação representa:

Listagem 5: Primeira linha da aplicação


    require 'formata_inteiro_decimal_br_tela.php';
    

Carrega o arquivo especificado (que contém a função) dentro da aplicação na hora de inicializá-lo. Para facilitar, vamos colocar somente o nome do arquivo formata_inteiro_decimal_br_tela.php) já que, neste exemplo, o arquivo com o código da função estará dentro da mesma pasta onde está o arquivo do código da aplicação principal.

Listagem 6: Segunda linha da aplicação


    $valor = 2000;
    

Cria a variável $valor e especifica o valor dela para 2000.

Listagem 7: Terceira linha da aplicação


    $valor_tela = inteiro_decimal_br($valor);
    

Utiliza a função inteiro_decimal_br() do arquivo formata_inteiro_decimal_br_tela.php e utiliza a variável $valor como parâmetro. O resultado da função é atribuído para a variável $valor_tela.

Listagem 8: Quarta linha da aplicação


    echo 'Numero com formatacao: ' . $valor . '<br />';
    

Exibe na tela a frase "Numero sem formatacao: " concatenado com o valor da variável $valor, ou seja o número sem a formatação, originalmente configurado no início da aplicação e imprime também uma quebra de linha de texto.

Listagem 9: Quinta linha da aplicação


    echo 'Numero com formatacao: ' . $valor_tela;
    

Exibe na tela a frase "Numero com formatacao: " concatenado com o valor da variável $valor_tela (no caso, o número com duas casas decimais e separador de milhar no padrão brasileiro - vírgula como separador de decimal e ponto como separador de milhar).

Código final da aplicação

O código final deverá ficar dessa forma:

Listagem 10: Código final da aplicação


    < ?php
    require 'formata_inteiro_decimal_br_tela.php';
    
    $valor = 2000;
    
    $valor_tela = inteiro_decimal_br($valor);
    echo 'Numero sem formatacao: ' . $valor . '<br />';
    echo 'Numero com formatacao: ' . $valor_tela;
    
    ? >
    

Escreva o código acima no editor e salve o arquivo como inteiro_decimal_br.php também no mesmo diretório onde está o arquivo com o código da função (C:\xampp\htdocs\inteiro_decimal_br).

Para rodar a página em PHP com a aplicação final, devemos entrar no browser e digitar o seguinte endereço, para efetuar o teste: http://localhost/ [diretório - se estiver em uma pasta .Se rodar direto da raiz, deixar vazio] /[nome do arquivo.php]

Como especificamos uma pasta para a aplicação neste exemplo, vamos digitar e executar o seguinte endereço: http://localhost/inteiro_decimal_br/inteiro_decimal_br.php.

E cá estamos, o número formatado com duas casas decimais e separador de milhar no padrão brasileiro:

Conclusão

Neste artigo aprendemos a criar uma função que converte um número inteiro para decimal com duas casas decimais e separador de milhar, no formato brasileiro. Isso é útil para criarmos aplicações que exijam dados numéricos formatados em decimal e milhar no formato brasileiro, em especial exibição de relatórios e tabelas, onde a formatação dos dados pode fazer diferença para o usuário.

Agora é estudar e botar a mão na massa. Até a próxima.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados