PHP 如何将数字转换成逗号分隔的形式?
例如1234567890
,转换后变成1,234,567,890
,每3
个数字用,
隔开。
答案
用内置number_format()
方法即可实现。
echo number_format($number);
自己实现(不支持小数点):
function number2thousands($number)
{
$number = (string)strrev($number); // 反转字符串
$number = chunk_split($number, 3, ','); // 以逗号,将字符串分隔成小段,每小段长度为3
$number = strrev($number); // 再转回来
return ltrim($number, ','); // 删除左边多余的逗号
}
答案解析
number_format()
— 以千位分隔符方式格式化一个数字。
最多可以传递4
个参数,控制浮点数精度、千位符号和小数点符号。
语法:
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 = 1234.5678;
echo number_format($number, 2, '.', ','); // 1,234.57