php用逗号格式化数字的方法(代码示例)
今日工作需要格式化数字显示当前商品价格,比如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 = emptyempty($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(!emptyempty($decimal)){
- $number_temp = !emptyempty($number_temp) ? $number_temp.".".$decimal : "0.".$decimal;
- }
- return $number_temp;
- }
- $result = numberFormat(1234567.5564);
- print_r($result);
- ?>
- //结果输出1,234,567.5564