PHP实现对数字分隔加千分号的方法


Posted in PHP onMarch 18, 2019

对于较大数字,添加千分号可以方便快速地读出数值。千分号是指从最右边开始,每隔三位加个逗号。这种写法很广泛,来源大概是因为英文中 Thousand,千、million,百万、billion,十亿 都是隔三位的。在这里我们使用php实现数字格式化,数字每三位加逗号的功能函数,具体如下:

number_format

摘自PHP官方文档(PHP 4, PHP 5)

number_format — 以千位分隔符方式格式化一个数字

说明

string number_format ( float$number [, int$decimals = 0 ] )
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

参数

number

你要格式化的数字

decimals

要保留的小数位数

dec_point

指定小数点显示的字符

thousands_sep

指定千位分隔符显示的字符      

function num_format($num){
 if(!is_numeric($num)){
 return false;
 }
 $num = explode('.',$num);//把整数和小数分开
 $rl = $num[1];//小数部分的值
 $j = strlen($num[0]) % 3;//整数有多少位
 $sl = substr($num[0], 0, $j);//前面不满三位的数取出来
 $sr = substr($num[0], $j);//后面的满三位的数取出来
 $i = 0;
 while($i <= strlen($sr)){
 $rvalue = $rvalue.','.substr($sr, $i, 3);//三位三位取出再合并,按逗号隔开
 $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;
}

另外可以使用系统自带的函数 string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] )

echo number_format('169856420');

输出结果将为:169,856,420

echo number_format('1000000',2);

输出结果将为:1,000,000.00

echo number_format('1000000',2,',','.');

输出结果将为:1.000.000,00

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
我的论坛源代码(七)
Oct 09 PHP
php获取网页内容方法总结
Dec 04 PHP
Php Ctemplate引擎开发相关内容
Mar 03 PHP
PHP输出时间差函数代码
Jan 28 PHP
浅析memcache启动以及telnet命令详解
Jun 28 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
php查询ip所在地的方法
Dec 05 PHP
php中有关合并某一字段键值相同的数组合并的改进
Mar 10 PHP
PHP中的traits实现代码复用使用实例
May 13 PHP
smarty简单应用实例
Nov 03 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
Mar 15 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
Jul 18 PHP
PHP生成指定范围内的N个不重复的随机数
Mar 18 #PHP
PHP中十六进制颜色与RGB颜色值互转的方法
Mar 18 #PHP
PHP将整数数字转换为罗马数字实例分享
Mar 17 #PHP
PHP标准库(PHP SPL)详解
Mar 16 #PHP
PHP PDO数据库操作预处理与注意事项
Mar 16 #PHP
php生成word并下载代码实例
Mar 15 #PHP
PHP-FPM的配置与优化讲解
Mar 15 #PHP
You might like
php chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
PHP安全性漫谈
2012/06/28 PHP
php常用hash加密函数
2014/11/22 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
PHP实现链表的定义与反转功能示例
2018/06/09 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
给Function做的OOP扩展
2009/05/07 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
2017/06/22 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
学习React中ref的两个demo示例
2018/08/14 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
[00:37]DOTA2上海特级锦标赛 Secert 战队宣传片
2016/03/03 DOTA
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
python实现对输入的密文加密
2019/03/20 Python
详解Python中的分支和循环结构
2020/02/11 Python
什么是python的函数体
2020/06/19 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
酒店应聘自荐信
2013/11/09 职场文书
优秀求职信范文分享
2014/01/26 职场文书
社区党务公开实施方案
2014/03/18 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
2015年元旦联欢晚会活动总结
2014/11/28 职场文书
心灵捕手观后感
2015/06/02 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
MySQL库表名大小写的选择
2021/06/05 MySQL
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫