php實現數字格式化,數字每三位加逗號的功能函數


php實現數字格式化,數字每三位加逗號的功能函數,具體代碼如下:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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 ;
}

另外可以使用系統自帶的函數string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] ):

例子:

 
1
echo number_format( '169856420' );

輸出結果將為:169,856,420

 
1
echo number_format( '1000000' ,2);

輸出結果將為:1,000,000.00

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

輸出結果將為:1.000.000,00

以上就是php實現數字每三位加逗號的代碼,剛開始大家看到題目是不是沒有思路,小編也是的,希望通過這篇文章可以給大家一些啟發。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM