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 相关文章推荐
珊瑚虫IP库浅析
Feb 15 PHP
在命令行下运行PHP脚本[带参数]的方法
Jan 22 PHP
基于PHP文件操作的详解
Jun 05 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
Jul 01 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
Jan 22 PHP
php输出指定时间以前时间格式的方法
Mar 21 PHP
PHP的PDO常用类库实例分析
Apr 07 PHP
Yii2中简单的场景使用介绍
Jun 02 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
Aug 06 PHP
PHP 实现缩略图
Mar 09 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正则校验用户名介绍
2008/07/19 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
找到了一篇jQuery与Prototype并存的冲突的解决方法
2007/08/29 Javascript
Javascript的&amp;&amp;和||的另类用法
2014/07/23 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
利用JS提交表单的几种方法和验证(必看篇)
2016/09/17 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
Webpack devServer中的 proxy 实现跨域的解决
2018/06/15 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
vue搜索和vue模糊搜索代码实例
2019/05/07 Javascript
three.js 制作动态二维码的示例代码
2020/07/31 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
python石头剪刀布小游戏(三局两胜制)
2021/01/20 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
python os.fork() 循环输出方法
2019/08/08 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
Python join()函数原理及使用方法
2020/11/14 Python
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
社区志愿者心得体会
2014/01/03 职场文书
优秀班组事迹材料
2014/12/24 职场文书
冰雪公主观后感
2015/06/16 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技