我正在尋找一種方法來使用PHP的number_format函數或類似的東西,將添加千分隔符,但會留下任何小數部分的數字intatct沒有和格式化。例如:php添加000seperator而不調整小數位
39845.25843 => 39,845.25843
347346.8 => 347,346.8
百萬=> 1,000,000
感謝
我正在尋找一種方法來使用PHP的number_format函數或類似的東西,將添加千分隔符,但會留下任何小數部分的數字intatct沒有和格式化。例如:php添加000seperator而不調整小數位
39845.25843 => 39,845.25843
347346.8 => 347,346.8
百萬=> 1,000,000
感謝
我與變量名點點想象力,但這會做:
function conv($str) {
$t = explode(".", $str);
$ret = number_format(reset($t), 0);
if (($h = next($t)) !== FALSE)
$ret .= "." . $h;
return $ret;
}
$val = number_format($val, strlen(end(explode('.', $val))));
編輯:如果你也想處理整數上面不會有不增加的情況下,對於沒有小數
$val = number_format($val, (strstr($val, '.')) ? strlen(end(explode('.', $val))) : 0);
上面一樣,但我扭工作:
function mod_numberformat($num){
// find & cache decimal part
$pos = strpos($num, '.');
$decimal = $pos !== false ? substr($num, $pos) : '';
// format number & avoid rounding
$number = number_format($num, 9);
// strip new decimal part & concatenate cached part
$number = substr($number, 0, strpos($number, '.'));
$number .= $decimal;
return $number;
}