PHP 如何将数字转换成逗号分隔的形式?

例如1234567890,转换后变成1,234,567,890,每3个数字用,隔开。

答案

用内置number_format()方法即可实现。

  1. echo number_format($number);

自己实现(不支持小数点):

  1. function number2thousands($number)
  2. {
  3. $number = (string)strrev($number); // 反转字符串
  4. $number = chunk_split($number, 3, ','); // 以逗号,将字符串分隔成小段,每小段长度为3
  5. $number = strrev($number); // 再转回来
  6. return ltrim($number, ','); // 删除左边多余的逗号
  7. }

答案解析

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

最多可以传递4个参数,控制浮点数精度千位符号小数点符号

语法:

  1. number_format ( float $number [, int $decimals = 0 ] ) : string
  2. 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例如:

  1. $number = 1234.5678;
  2. echo number_format($number, 2, '.', ','); // 1,234.57