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 相关文章推荐
用PHP和MySQL保存和输出图片
Oct 09 PHP
php 变量定义方法
Jun 14 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
Dec 29 PHP
php实例分享之mysql数据备份
May 19 PHP
PHP面向对象精要总结
Nov 07 PHP
php+ajax实现无刷新的新闻留言系统
Dec 21 PHP
php快速排序原理与实现方法分析
May 26 PHP
Yii视图操作之自定义分页实现方法
Jul 14 PHP
php  单例模式详细介绍及实现源码
Nov 05 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
May 20 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输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
python 列表递归求和、计数、求最大元素的实例
2018/11/28 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
精美的手工家居和生活用品:Nkuku
2019/11/01 全球购物
JBL加拿大官方商店:扬声器、耳机等
2020/10/23 全球购物
本科生学习总结的自我评价
2013/10/02 职场文书
工厂仓管员岗位职责
2014/01/01 职场文书
初中地理教学反思
2014/01/11 职场文书
消防安全责任书
2014/04/14 职场文书
班级标语大全
2014/06/21 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
导游欢迎词范文
2015/01/23 职场文书
SQL Server连接查询的实用教程
2021/04/07 SQL Server
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS