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 ...
随机推荐
- 直接修改托管堆栈中的type object pointer(类型对象指针)
都知道.NET是一个强对象类型的框架. 那么对于对象类型又是怎么确定的呢. 最初的我简单认为数据的类型就是定义时字段的类型修饰决定的(回来发现这种观点是绝对错误的) 我们知道引用对象存储在托管堆栈中, ...
- android之对话、单复框的使用
对话框 通过builder来构建一个单选框 package xidian.dy.com.chujia; import android.content.DialogInterface; import a ...
- 24.C#LINQ TO XML(十二章12.3)
自己也写了那么多,但还有很多不懂,有点浮躁吧,但饭还是要吃啊,说说LINQ TO XML吧. LINQ TO XML位于System.Xml.Linq程序集,并且大多数类型位于System.Xml.L ...
- Java Web整合开发实战:基于Struts 2+Hibernate+Spring 目录
第1篇 Java Web开发基础第1章 Web的工作机制( 教学视频:31分钟) 1.1 理解Web的概念 1.1.1 Web的定义 1.1.2 Web的三个核心标准 1.2 C/S与B/S两种软件体 ...
- struts2升级报ActionContextCleanUp<<is deprecated。Please use the new filters
把web.xml中配置struts.xml的文件改成 <?xml version="1.0" encoding="UTF-8"?> <web- ...
- 使用GitHub进行团队合作
原文: Team Collaboration With GitHub GitHub已经成为的一切开放源码软件的基石.开发人员喜欢它,基于它进行协作,并不断通过它开发令人惊叹的项目.除了代码托管,G ...
- OC基础--成员变量的封装
一.封装的作用: 1.重用 2.不必关心具体的实现 3.面向对象三大特征之一 4.具有安全性 二.OC中成员变量的命名规范以及注意事项 1.命名规范--.成员变量都以下划线“_”开头 1)为了跟get ...
- Js-字符转换数字
s 字符串转化成数字 的 三种方法主要有 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数, ...
- 【前端学习】搬进Github
学习参考 萌码 一.Github简介和基本操作 Github 上操作基本上围绕一个个项目展开.项目就是一个文件夹,在github中成为“仓库”(repository),里面放着所有的项目文件,可以是代 ...
- 【POJ 1035】Spell checker
题 题意 每个单词,如果字典里存在,输出”该单词 is correct“:如果字典里不存在,但是可以通过删除.添加.替换一个字母得到字典里存在的单词,那就输出“该单词:修正的单词”,并按字典里的顺序输 ...