HOWTO · PHP

Como mostrar um número para dois locais decimais em PHP

Este artigo introduz como mostrar um número com duas casas decimais em PHP. Ele inclui função number_format(), função round() e função sprintf()

Nesta página

Neste artigo, vamos introduzir métodos para mostrar um número com duas casas decimais em PHP.

  • Utilizando a função number_format()
  • Utilizando a função round()
  • Utilizando a função sprintf()

Utilize number_format() Função para mostrar um número para duas casas decimais em PHP

A função embutida number_format() é utilizada para formatar um número. Por formatação, queremos dizer que o número é exibido com um ponto decimal e um separador de milhar. Ela também arredonda um número, se necessário. Podemos utilizar esta função para mostrar um número com duas casas decimais. A sintaxe correta para usar esta função é a seguinte

number_format($number, $NumOfDecimals, $decimalIndicator, $thousandSeparator)
Parmater Descrição
$number obrigatório o número a ser formatado
$NumOfDecimals opcional o número de valores decimais após o ponto decimal
$decimalIndicator opcional um ponto decimal personalizado para o número. Se omitido, o ponto decimal por padrão é .
$thousandSeparator opcional um separador personalizado de milhares. Se omitido, o mil separador por padrão é ",".

Códigos de exemplo:

<?php
$number1 = 5;
$number2 = 34.600;
$number3 = 15439.093;
$format_number1 = number_format($number1, 2);
$format_number2 = number_format($number2, 2);
$format_number3 = number_format($number3, 2, "d", "@");
echo "The number $number1 after formating is: $format_number1 \n";
echo "The number $number2 after formating is: $format_number2 \n";
echo "The number $number3 after formating is: $format_number3 \n";
?>

Esta função tem três parâmetros opcionais, mas não permite três parâmetros. Ela permite que um, dois e quatro parâmetros sejam passados. Neste exemplo, os $number1 e $number2 são formatados com duas casas decimais com o ponto decimal padrão. Mas o $number3 é formatado com o ponto decimal personalizado "d" e o separador de milhares "@".

Resultado:

The number 5 after formating is: 5.00 
The number 34.6 after formating is: 34.60 
The number 15439.093 after formating is: 15@439d09

Utilize round() Função para mostrar um número para duas casas decimais em PHP

A função round() é utilizada para arredondar um número ou valor de flutuação. Podemos arredondar um número para nossas casas decimais desejadas. A sintaxe correta para utilizar esta função é a seguinte

round($number, $decimalPlaces, $mode);
Parmater Descrição
$number obrigatório o número a ser formatado
$decimalPlaces opcional o número de valores decimais após o ponto decimal
$mode opcional modo de arredondamento

Códigos de exemplo:

<?php
$number1 = 5;
$number2 = 34.6;
$number3 = 15439.093;
$format_number1 = round($number1, 2);
$format_number2 = round($number2, 2);
$format_number3 = round($number3, 2);
echo "The number $number1 after rounding is: $format_number1 \n";
echo "The number $number2 after rounding is: $format_number2 \n";
echo "The number $number3 after rounding is: $format_number3 \n";
?>

O importante aqui é observar que ele não afeta um número ou um valor de flutuação com um ponto decimal se quisermos arredondá-los para duas casas decimais.

Resultado:

The number 5 after rounding is: 5 
The number 34.6 after rounding is: 34.6 
The number 15439.093 after rounding is: 15439.09
Atenção

Quando o número original tiver menos dígitos decimais do que as casas decimais a serem formatadas, a função round() não adicionará zeros no final do número.

Você deve utilizar o método number_format() se duas casas decimais forem necessárias para todos os números, incluindo números inteiros.

Utilize sprintf() Função para mostrar um número para duas casas decimais em PHP

A função embutida sprintf() formata uma string de acordo com um determinado formato. Ela pode ser utilizada para mostrar um número com duas casas decimais. A sintaxe correta para utilizar esta função é a seguinte

sprintf($format, $parameter1, $parameter2, ... , $parameterN);

O parâmetro $format é o formato que especifica como as variáveis estarão na string. O próximo parâmetro $parameter1 é a primeira variável cujo valor será atribuído ao primeiro % na string. O parâmetro $parameter2 é a segunda variável cujo valor será atribuído ao segundo % na string. Desta forma, podemos inserir N variáveis para sinais de N %.

<?php
$num = 67;
$number = sprintf('%.2f', $num);
echo "The number upto two decimal places is $number";
?>

Aqui, utilizamos %f para um valor de flutuação. O %.2f indica que o valor de flutuação será de até duas casas decimais.

Resultado:

The number up to two decimal places is 67.00