经常接触到一些大数据的朋友都知道,为了方便更快地读出一个数值的大小,开发者一般都会对输出的较大的数值进行格式化:一般格式化的方式呢,有用类似XXX万XXXX的格式,不过更常见到的是给数值每三个数字后面加一个半角的逗号。这也是最常见到的一种格式。下
经常接触到一些大数据的朋友都知道,为了方便更快地读出一个数值的大小,开发者一般都会对输出的较大的数值进行格式化:一般格式化的方式呢,有用类似xxx万xxxx的格式,不过更常见到的是给数值每三个数字后面加一个半角的逗号。这也是最常见到的一种格式。下面,我们就来看看,如何将一个较大的数值格式化成每三个数字加逗号的格式。(其实呢,wordpress上面的评论次数数值达到一定程度的时候,也是采用这种格式对数值进行格式化的。)
function number_format($num){
if(!is_numeric($num)){//首先对变量进行判断 看看是否是数字或数字字符串
return false;
}
$num=explode('.',$num);//首先呢,利用小数点把数值分成整数和小数两个部分,并保存到$num变量里面
$rl=$num[1];//我们都知道,小数部分是位于数值小数点之后,所以它的键值是1
$j=strlen($num[0])%3;//接下来我们把整数部分除以三求余数 目的是为了确定最前面不足三位数的长度
$sl=substr($num[0],0,$j);//然后 我们利用substr,从第0个数值(首个数字),向后取$j个数字,实际上相当于截断了最前面的$j个数字
$sr=substr($num[0],$j);//下来吧 截取位置超过(包含)第三的部分,也就是整数部分,除去$sl部分剩下的段
$i=0;
while($i<=strlen($sr)){
$rvalue=$rvalue.','.substr($sr, $i, 3);//三位三围地截断$sr部分,并用半角逗号连接它们
$i=$i+3;
}
$rvalue=$sl.$rvalue;//接下来把不够三位的那部分和后面的部分结合
$rvalue=substr($rvalue,0,strlen($rvalue)-1);//那整数最后面的一个半角逗号去掉
$rvalue=explode(',',$rvalue);//然后把新生成 带逗号的数值字符串按逗号隔开 分解成数组
if($rvalue[0]==0){
array_shift($rvalue);//如果最前面的那段都是0 果断删掉
}
$rv=$rvalue[0];//前面不满三位的数
for($i = 1; $i < count($rvalue); $i++){
$rv = $rv.','.$rvalue[$i];
}
if(!empty($rl)){
$rvalue = $rv.'.'.$rl;//小数不为空,整数和小数合并
}else{
$rvalue = $rv;//小数为空,只有整数
}
return $rvalue;
}实际上呢,主要是explode和substr起关键作用。前面一个主要是把数值或者数值字符串转成数组,后面一个负责截取!!
声明: 本文采用 BY-NC-SA 协议进行授权 | IT路人
转载请注明转自《PHP教程:格式化数字 每三个数加一个逗号》
一个功能强大的B2B与B2C的购物平台,除了原本OSC功能外,增加更新的功能: 一、 取消了register_globals必须开启的限制 二、 將HTML程式碼与PHP程式碼完全分离,採用了smarty 樣板引擎 三、 每支档案includes所需函数与资料库连结,使的网页显示速度明显提升 四、 检视、购买商品群组权限设定 五、 十八岁以下禁购机制 六、 折价券购物抵扣机制 七、 礼券购物机制
0
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号