PHP Tutorial - PHP number_format() Function






Definition

The number_format() function rounds numbers and adds commas as a thousands separator.

Syntax

PHP number_format() Function has the following syntax.

string number_format ( float $number [, int $decimals = 0 ] )

or

string number_format ( float num [, int decimals [, string decimal_point, string thousands_sep]] )

Parameter

  • number - The number being formatted.
  • decimals - Sets the number of decimal points.
  • dec_point - Sets the separator for the decimal point.
  • thousands_sep - Sets the thousands separator.

This function accepts either one, two, or four parameters (not three):

  • If only one parameter is given, number will be formatted without decimals, but with a comma (",") between every group of thousands.
  • If two parameters are given, number will be formatted with decimals decimals with a dot (".") in front, and a comma (",") between every group of thousands.
  • If all four parameters are given, number will be formatted with decimals decimals, dec_point instead of a dot (".") before the decimals and thousands_sep instead of a comma (",") between every group of thousands.




Return

PHP number_format() Function returns a formatted version of number.

Example

You can pass it either one, two, or four parameters.

number_format($n) rounds $n to the nearest whole number and adds commas in between thousands. For example:

<?PHP
$total = 12345.6789; 
echo "Total charge is \$", number_format($total), "\n"; 
?>

That will output Total charge is $12,346, because it rounds up to the nearest decimal place.

number_format($n,$p) rounds $n to $p decimal places, adding commas between thousands. For example:

<?PHP
echo "Total charge is \$", number_format($total, 2), "\n"; 
?>

This time the output is 12,345.68, as it has been rounded to two decimal places.

number_format($n, $p, $t, $d) rounds $n to $p decimal places, using $t as the thousands separator and $d as the decimal separator. For example:

<?PHP
echo "Total charge is ", number_format($total, 2, ".", ","), " Euros"; 
?>

The output is now 12.345,68, which swaps the period and comma, as is the norm in many European countries.





Example 2

The following code shows how to format a number with grouped thousands.

<?php

$number = 1234.56;

// english notation (default)
$english_format_number = number_format($number);
echo $english_format_number;

// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
echo $nombre_format_francais;

$number = 1234.5678;

// english notation without thousands separator
$english_format_number = number_format($number, 2, '.', '');
echo $english_format_number;
// 1234.57

?>


The code above generates the following result.