写在前
昨晚在明朝游戏做了一道笔试题,题目大致内容是这样:一串数字字符串“3456789”,写一个函数使得每个三位用逗号分隔,如银行金钱计数法3,456,789。
刚开始用了笨方法,后来发现,PHP太强大了,早已内置了更高效方便的函数。
(PHP 4, PHP 5, PHP 7)
number_format — 以千位分隔符方式格式化一个数字
说明
string number_format (
float $number, #你要格式化的数字
int $decimals = 0,#要保留的小数位数
string $dec_point = ".",#指定小数点显示的字符
string $thousands_sep = ","#指定千位分隔符显示的字符
)
本函数可以接受1个、2个或者4个参数(注意:不能是3个):
如果只提供第一个参数,number的小数部分会被去掉 并且每个千位分隔符都是英文小写逗号”,”
如果提供两个参数,number将保留小数点后的位数到你设定的值,其余同楼上
如果提供了四个参数,number 将保留decimals个长度的小数部分, 小数点被替换为dec_point,千位分隔符替换为thousands_sep
例子
// english notation (default)
$english_format_number = number_format($number);
// 1,235
echo $english_format_number.'\n';
// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56
echo $nombre_format_francais.'\n';
$number = 1234.5678;
// english notation without thousands separator
$english_format_number = number_format($number, 2, '.', '');
echo $english_format_number.'\n';