Home  >  Article  >  Backend Development  >  PHP number formatting, add commas to every three digits of the number, decimals can be retained

PHP number formatting, add commas to every three digits of the number, decimals can be retained

巴扎黑
巴扎黑Original
2016-11-24 10:40:02965browse

In order to give viewers clearer numbers when quoting, we need to use digital formatting. There are two methods, one is to write the function yourself, and the other is of course the system’s own. In fact, I prefer the system’s own Brought.

First come the simple system:

string number_format (float number [, int decimals [, string dec_point, string thousands_sep]] ):

View code 1 echo number_format('169856420');

The output result will be: 169,856,420

View code 1 echo number_format('1000000',2);

The output result will be: 1,000,000.0

View code 1 echo number_format('1000000',2,',','.');

The output result will be: 1.000.000,00

Look at the written function:

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.&#39;,&#39;.substr($sr, $i, 3);//三位三位取出再合并,按逗号隔开  
       $i = $i + 3;  
    }  
   $rvalue = $sl.$rvalue;  
    $rvalue = substr($rvalue,0,strlen($rvalue)-1);//去掉最后一个逗号  
     $rvalue = explode(&#39;,&#39;,$rvalue);//分解成数组  
     if($rvalue[0]==0){  
      array_shift($rvalue);//如果第一个元素为0,删除第一个元素  
   }  
     $rv = $rvalue[0];//前面不满三位的数  
    for($i = 1; $i < count($rvalue); $i++){  
       $rv = $rv.&#39;,&#39;.$rvalue[$i];  
     }  
   if(!empty($rl)){  
        $rvalue = $rv.&#39;.&#39;.$rl;//小数不为空,整数和小数合并  
   }else{  
       $rvalue = $rv;//小数为空,只有整数  
   }  
    return $rvalue;  
}


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn