DeTechn Blog

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 = 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

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »