PHP number_format() 函数

时间:2011-7-20     作者:smarteng     分类: PHP相关


记得网上曾经有一个面试题:

 将1234567890转换成1,234,567,890 每3位用逗号隔开的形式。(7分)

<?php 

$num = "1234567890.11";  

$num = preg_replace('/(?<=[0-9])(?=(?:[0-9]{3})+(?![0-9]))/', ',', $num); 

echo $num; 

?>

有人曾经用了很牛逼的正则解决了这个问题,当时是羡慕不已,仰望大牛,我什么时候才能灰常熟练的解决问题呢?

今天看到有人在PPC问 自带函数可以将 123456789 转成 123,456,789 ,

牛人回答曰 number_format() 函数;

大惊,看了看手册,果然可以,而且是如此简单,正则那个弱爆了,

真是一山还有一山高,下面是 number_format() 函数 的用法:

定义和用法

number_format() 函数通过千位分组来格式化数字。

语法

number_format(number,decimals,decimalpoint,separator)
参数 描述
number

必需。要格式化的数字。

如果未设置其他参数,则数字会被格式化为不带小数点且以逗号 (,) 作为分隔符。

decimals 可选。规定多少个小数。如果设置了该参数,则使用点号 (.) 作为小数点来格式化数字。
decimalpoint 可选。规定用作小数点的字符串。
separator

可选。规定用作千位分隔符的字符串。

仅使用该参数的第一个字符。比如 "xyz" 仅输出 "x"。

注释:如果设置了该参数,那么所有其他参数都是必需的。

提示和注释

注释:该函数支持一个、两个或四个参数(不是三个)。

例子

<?php
echo number_format("1000000");
echo number_format("1000000",2);
echo number_format("1000000",2,",",".");
?>

输出:

1,000,000
1,000,000.00
1.000.000,00