Formato de números em PHP

Explicações e exemplos sobre formato de números em PHP. Aprendemos a formatar números em PHP com pontos entre os milhares e comas em decimais.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 18/5/09
Valorize este artigo:
Quando mostramos um número em uma página web podemos querer que tenha um formato específico. Por exemplo, que tenha só dois decimais, ou que utilize vírgulas -ou pontos- para separar decimais, assim como as unidades de milhar. Típicos formatos de número poderiam ser:

1.000.505,56
5003.60
5,000.00


Apresentar os números com um ou outro formato é simples, já que em PHP existe uma função específica para dar formato aos números, que dependendo dos parâmetros recebidos os formatará de uma maneira ou outra. Neste artigo vamos conhecer tal função, assim como suas possibilidades de configuração e ver vários exemplos.

Função number_format()

Realizaremos a formatação dos números com a função de PHP number_format(). Esta função recebe um, dois ou quatro parâmetros. Ou seja, temos estas restrições:
  • Há um único parâmetro obrigado (o número que queremos formatar).
  • O segundo parâmetro é opcional, tal como o terceiro e o quarto.
  • Porém, se especificarmos o terceiro parâmetro, estamos obrigados a especificar também o quarto.
Vejamos com detalhe os parâmetros da função de formatação de números de PHP, com diversos exemplos.

Parâmetro 1, o número:
O primeiro parâmetro é o número a formatar. Tal como dissemos, embora seja óbvio, é um parâmetro sempre necessário.

$numero = 15200.67;
number_format($numero);
//devolve 15,201


Neste caso, a formatação do número nos dará o número sem decimais e com uma vírgula como separador de milhares. Este formato é o que se utiliza em inglês (as pessoas de fala inglesa separam os milhares com vírgula ao escrever os números), que certaente não servirá aos desenvolvedores que trabalham em português.

Cabe observer que a função number_format() realizou também um arredondamento dos decimais que não está mostrando. Podemos ver bem este arredondamento no seguinte exemplo:

$numero = 999999999.99;
number_format($numero);
//devolve 1,000,000,000


Parâmetro 2, os decimais:
Com o segundo parâmetro, que é opcional, indicamos o número de decimais que queremos que apareçam no número formatado.

$numero = 15200.67;
number_format($numero,2);
//devolve 15,201.67


Como vemos, neste caso se incorporaram os decimais ao formato do número. Utiliza vírgulas para separar os milhares e um ponto para separar as unidades de milhar. Como vemos, continua utilizando a notação inglesa para formatar números.

Outro exemplo, no qual podemos apreciar que sempre se faz um arredondamento do número, se os decimais a mostrar forem menos que os que tiverem o número original.

$numero = 1885200.89;
number_format($numero,1);
//devolve 1,885,200.9


Parâmetros 3 e 4, separadores de decimais e de unidades de milhar
Os últimos parâmetros, que devemos utilizar sempre juntos, servem para especificar os separadores que queremos utilizar para os decimais e as unidades de milhar. Se quisermos formatar os números com a notação portuguesa teríamos que utilizar obrigatoriamente estes parâmetros.

Por exemplo, assim faríamos para formatar os números em português:
  • Separar os decimais com vírgula
  • Separar as unidades de milhar com um ponto.
$numero = 1002002.365;
number_format($numero, 2, ",", ".");
//devolve 1.002.002,37


Se, por exemplo, não separar os milhares, simplesmente passamos como separador de unidades de milhar (quarto parâmetro) a cadeia vazia:

$numero = 9540.2;
number_format($numero, 2, ",", "");
//devolve 9540,20


Conclusão sobre o formato de números com PHP

Isso é tudo o que temos que saber para formatar números em PHP. Como se pode ver é bem simples apresentar os números com os decimais que necessitemos e com os separadores corretos de decimais e milhares para o idioma português.






Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato