今日工作需要格式化数字显示当前商品价格,比如2335.32,需要格式化为2,335.32这样显示。我写了一个函数。总感觉这么简单的功能,但是却需要30多行代码来完成。

<?php
/****
* @author Amos Wang
* @param $number
* @return mixed
*/
function numberFormat($number)
{
if(!is_numeric($number)){
return $number; // 只处理数字
}
list($integer,$decimal) = explode('.',$number);
$number_temp = ""; // 临时计数
$len = strlen($integer);
$sublen = 3; // 每隔几位数加逗号 //处理整数部分
$i=1;
while(true){
$pos = $i * $sublen;
$join = empty($number_temp) ? "" : ","; // 连接符
$number_temp = substr($integer,(0-$pos),$sublen).$join.$number_temp; if(($pos + $sublen) > $len){
$number_temp = substr($integer,0,($len - $pos)).$join.$number_temp;
break;
}
$i++;
}
//处理小数部分
if(!empty($decimal)){
$number_temp = !empty($number_temp) ? $number_temp.".".$decimal : "0.".$decimal;
}
return $number_temp;
}
$result = numberFormat(1234567.5564);
print_r($result);
?>
//结果输出1,234,567.5564

php用逗号格式化数字的更多相关文章

  1. 在jsp页面中实现格式化数字,百分比,货币

    当时的要求是在jsp页面中计算百分比 实现方法 1.引入Jstl的fmt指令 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" ...

  2. php number_format()保留小数点后几位有效数的函数 千位分组来格式化数字(转)

    PHP保留小数点后2位的函数number_format number_format(带小数点的书,小数点后保留的位数) number_format(8.3486,2);  //取得小数点后2位有效数/ ...

  3. C#学习-图解教程(1):格式化数字字符串

    学习内容:C#:学习书籍:图解教程(中文第四版). 目录:第二章 C#编程概述 -----> 2.7 从程序中输出文本 -----> 2.7.5格式化数字字符串 using System; ...

  4. 自定义编写js格式化数字的函数

    在处理网页的时候,有时候会需要显示很长的数字,但是当数字的长度比较长的时候,就很难看一个数字到底是多大.这种情况下,一些网站在处理数字的时候,当数字的长度大于3个时,就用逗号把他们分开,这是一个比较常 ...

  5. Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作

    Visual Studio 2017中使用正则修改部分内容   最近在项目中想实现一个小工具,需要根据类的属性<summary>的内容加上相应的[Description]特性,需要实现的效 ...

  6. C#格式化信息,格式化数字、格式化日期

    一.格式化方法: 1.ToString()实例方法 使用当前文化: varname.ToString("C4"); 使用特定文化: varname.ToString("C ...

  7. java基础之——DecimalFormat格式化数字

    DecimalFormat可以用来格式化数字,例如用来设定保留多少位小数.设定数字分隔符等. 说方法之前,先介绍一下其常用的几个模式占位符: 0 一个数字# 一个数字,不包括 0. 小数的分隔符的占位 ...

  8. js格式化数字和金额

    格式化数字,格式化金额: function number_format(number, decimals, dec_point, thousands_sep) { /* * 参数说明: * numbe ...

  9. Smarty格式化数字为INT数

    <? require("setup.php"); define('PAGETITLE','pagtitle'); function insert_top($lid,$sid) ...

随机推荐

  1. 利用状态机(FSM)进行简单的uart串口发送数据

    module uart_tx(clk,rst_n,key,txd); input clk; input rst_n; input key; output reg txd; :] state; :] b ...

  2. 浙江省赛C.Array in the Pocket(贪心+线段树)

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4102 题意: 给出一个长度为n的数组,重排它们,让相同位置的数 ...

  3. 子类中执行父类的方法(引出super()与mro列表)

    1. 我们先想一下在python中如果子类方法中想执行父类的方法,有什么方式?大概有三种: Parent.__init__(self, name) # 通过父类的名字,指定调用父类的方法 super( ...

  4. 修改vscode终端样式

    在设置中查找workbench,然后编辑setting.json: "terminal.integrated.cursorBlinking": true, "termin ...

  5. 微信一键登录(微信OAuth2.0)

    1.注册微信开放平台https://open.weixin.qq.com,一定要清楚微信开放平台和微信公众平台是分别独立的,不能共用. 2.登录进入——管理中心,网站应用,创建网站应用.填写申请,企业 ...

  6. 演示Java如何调用Mysql的过程和函数

    这里只演示Java如何调用Mysql的过程和函数 --------------------------------------------------------------------------- ...

  7. [Java读书笔记] Effective Java(Third Edition) 第 3 章 对于所有对象都通用的方法

    第 10 条:覆盖equals时请遵守通用约定 在不覆盖equals方法下,类的每个实例都只与它自身相等. 类的每个实例本质上都是唯一的. 类不需要提供一个”逻辑相等(logical equality ...

  8. python之scrapy爬取jd和qq招聘信息

    1.settings.py文件 # -*- coding: utf-8 -*- # Scrapy settings for jd project # # For simplicity, this fi ...

  9. Fluent Ribbon Control Suite和AvalonDock 控件库

    Fluent Ribbon Control Suite 是一个Ribbon控件,可以用来创建Office 2010 样式的用户界面,支持MVVM,最近快要更新了,将会有Office 2013 样式的主 ...

  10. C# 后台服务 web.config 中 项“ConnectionString”已添加。问题

    是自己在一网站下建了虚拟目录.原本网站为空,后来自己改了路径,有了默认配置很久后打开原本ok的虚拟目录,坑爹了.杯具了.代码:ConfigurationManager.ConnectionString ...