今日工作需要格式化數(shù)字顯示當(dāng)前商品價(jià)格,比如2335.32,需要格式化為2,335.32這樣顯示。我寫(xiě)了一個(gè)函數(shù)??偢杏X(jué)這么簡(jiǎn)單的功能,但是卻需要30多行代碼來(lái)完成。
具體代碼如下:
<?php /**** * @author Amos Wang * @param $number * @return mixed */ function numberFormat($number) { if(!is_numeric($number)){ return $number; // 只處理數(shù)字 } list($integer,$decimal) = explode('.',$number); $number_temp = ""; // 臨時(shí)計(jì)數(shù) $len = strlen($integer); $sublen = 3; // 每隔幾位數(shù)加逗號(hào) //處理整數(shù)部分 $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++; } //處理小數(shù)部分 if(!empty($decimal)){ $number_temp = !empty($number_temp) ? $number_temp.".".$decimal : "0.".$decimal; } return $number_temp; } $result = numberFormat(1234567.5564); print_r($result); ?> //結(jié)果輸出1,234,567.5564