PHP数字格式化,每三位逗号分隔数字,可以保留小数
在报价的时候为了给浏览者更清晰明确的数字,所以需要用到数字格式化,有两种方法,一种自己写函数,另一种当然是系统自带的,其实我更喜欢系统自带的。
先来系统简单的:
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
再看写的函数:
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;
}
PHP数字格式化,每三位逗号分隔数字,可以保留小数的更多相关文章
- JS将数字转换成三位逗号分隔的样式
function formatNum(num) { if(!/^(\+|-)?(\d+)(\.\d+)?$/.test(num)){alert("wrong!"); return ...
- E - Leading and Trailing 求n^k得前三位数字以及后三位数字,保证一定至少存在六位。
/** 题目:E - Leading and Trailing 链接:https://vjudge.net/contest/154246#problem/E 题意:求n^k得前三位数字以及后三位数字, ...
- js格式化数字 金额按千位逗号分隔
// 返回数字 function removeFormatMoney(s) { return parseFloat(s.replace(/[^\d\.-]/g, "")); } / ...
- js金额数字格式化实现代码(三位加逗号处理保留两位置小数)
工作中很常用的东西: 例1,使数字1111111变成11,111,111.00,保留两位小数. <html> <head> <script type="text ...
- js 格式化数字(每三位加逗号)
// 方法一 unction toThousands(num) { var result = [ ], counter = 0; num = (num || 0).toString().split(' ...
- JS格式化数字(每三位加逗号)
function toThousands(num) { var num = (num || 0).toString(), result = ''; //判断是否带小数点 if (num.split(' ...
- javascript 正则(将数字转化为三位分隔的样式)
'12345678912345678'.replace(/\B(?=(?:\d{3})+\b)/g, ',') 解释: \b : 匹配单词边界,就是位于字符\w([a-zA-Z0-9_])和\W[^a ...
- javascript 正则(将数字转化为三位分隔的样式)【转】
原文:https://www.cnblogs.com/sivkun/p/7123963.html })+\b)/g, ',') 解释: \b : 匹配单词边界,就是位于字符\w([a-zA-Z0-9_ ...
- js j将数字每三位用逗号隔开的方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- zoeDylan.js框架-数据底层
zoeDylan.js是墨芈自己写的一套前端框架,不过由于墨芈经验不足,所以框架内部代码有些混乱. 墨芈写这套框架的目的是为了存储以后做前端开发过程中的一些代码,简单的说这套框架就是一个大杂烩. 这套 ...
- ionic 设置logo 与 设置 启动页
1.在项目的根目录下创建resources文件夹. 2.在文件夹中都放入icon.png(应用图标,最小192x192px,不带圆角),splash.png(启动屏幕,最小2208x2208px,中间 ...
- WCF入门(9)
前言 上次搬家空调出了点问题,和修空调的师傅商量了一下,感觉还是讲理的. 今天又在公司基本没有任何存在感的过了一天,纠结...领导还不在... 前些天往手机里面放了几集WCF入门视频,今天用暴风影音看 ...
- DOM(三)使用DOM + Css
1.使用getElementsByTagName修改class类别或者追加类别 <ul class="name1" onclick="clickz()"& ...
- 第三章:模块加载系统(requirejs)
任何一门语言在大规模应用阶段,必然要经历拆分模块的过程.便于维护与团队协作,与java走的最近的dojo率先引入加载器,早期的加载器都是同步的,使用document.write与同步Ajax请求实现. ...
- MySQL性能分析
第一步 检查系统的状态 通过操作系统的一些工具检查系统的状态,比如CPU.内存.交换.磁盘的利用率,根据经验或与系统正常时的状态相比对,有时系统表面上看起来看空闲,这也可能不是一个正常的状态,因为cp ...
- Ajax实现联动效果
用到了地区的数据库 html代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="s ...
- 小结-Splay
参照陈竞潇学长的模板写的BZOJ 3188: #include<cstdio> #include<cstring> #include<algorithm> #def ...
- 【poj1716】 Integer Intervals
http://poj.org/problem?id=1716 (题目链接) 题意 给出n个区间,要求取出最少数量的不同的自然数,使每个区间中至少包含2个取出的数. Solution 差分约束. 运用前 ...
- event driven的一些概念
1. event :Something that happens during your application that requires a response. 2.event object:Th ...