首页 > php教程 > php手册 > 正文

PHP教程:格式化数字 每三个数加一个逗号

WBOY
发布: 2016-06-06 20:09:29
原创
1189 人浏览过

经常接触到一些大数据的朋友都知道,为了方便更快地读出一个数值的大小,开发者一般都会对输出的较大的数值进行格式化:一般格式化的方式呢,有用类似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教程:格式化数字 每三个数加一个逗号》

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!