# number_format

(PHP 4, PHP 5, PHP 7)

number_format — 以千位分隔符方式格式化一个数字

### 说明

number_format ( float `$number` [, int `$decimals` = 0 ] ) : string
number_format ( float `$number` , int `$decimals` = 0 , string `$dec_point` = "." , string `$thousands_sep` = "," ) : string

本函数可以接受1个、2个或者4个参数（注意：不能是3个）:

如果只提供第一个参数，`number`的小数部分会被去掉 并且每个千位分隔符都是英文小写逗号","

如果提供两个参数，`number`将保留小数点后的位数到你设定的值，其余同楼上

如果提供了四个参数，`number` 将保留`decimals`个长度的小数部分, 小数点被替换为`dec_point`，千位分隔符替换为`thousands_sep`

### 参数

`number`

  你要格式化的数字

`decimals`

  要保留的小数位数

`dec_point`

  指定小数点显示的字符

`thousands_sep`

  指定千位分隔符显示的字符

### 返回值

格式化以后的 `number`.

### 更新日志

版本 | 说明
--- | ---
5.4.0 | This function now supports multiple bytes in `dec_point` and `thousands_sep`. Only the first byte of each separator was used in older versions.

### 范例

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 way 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

    ?>

### 更新日志

版本 | 说明
--- | ---
7.2.0 | number_format() 现在无法返回 -0，之前可能返回 -0，因为 `number` 可能会是 -0.01。

### 参见

- money_format() - 将数字格式化成货币字符串
- sprintf() - Return a formatted string
- printf() - 输出格式化字符串
- sscanf() - 根据指定格式解析输入的字符