今日工做須要格式化數字顯示當前商品價格,好比2335.32,須要格式化爲2,335.32這樣顯示。我寫了一個函數。總感受這麼簡單的功能,可是卻須要30多行代碼來完成。php
<?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