number_format

Format a number with grouped thousands

Description

string number_format(
    float $num,
    int $decimals = 0,
    stringnull $decimal_separator = ".",
    stringnull $thousands_separator = ","
)

Formats a number with grouped thousands and optionally decimal digits using the rounding half up rule.

Parameters

num

The number being formatted.

decimals

Sets the number of decimal digits. If 0, the decimal_separator is omitted from the return value.

decimal_separator

Sets the separator for the decimal point.

thousands_separator

Sets the thousands separator.

Return Values

A formatted version of num.

Changelog

Version Description
8.0.0 Prior to this version, number_format accepted one, two, or four parameters (but not three).
7.2.0 number_format was changed to not being able to return -0, previously -0 could be returned for cases like where num would be -0.01.

Examples

Example #1 number_format Example

For instance, French notation usually use two decimals, comma (',') as decimal separator, and space (' ') as thousand separator. The following example demonstrates various ways to format a number:

<?php

$number = 1234.56;

// english notation (default)
$english_format_number = number_format($number);
// 1,235

// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

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

?>

See Also

  • money_format
  • sprintf
  • printf
  • sscanf