2010-05-24 49 views
1

我正在尋找一種方法來使用PHP的number_format函數或類似的東西,將添加千分隔符,但會留下任何小數部分的數字intatct沒有和格式化。例如:php添加000seperator而不調整小數位

39845.25843 => 39,845.25843

347346.8 => 347,346.8

百萬=> 1,000,000

感謝

回答

1

我與變量名點點想象力,但這會做:

function conv($str) { 
    $t = explode(".", $str); 
    $ret = number_format(reset($t), 0); 
    if (($h = next($t)) !== FALSE) 
     $ret .= "." . $h; 
    return $ret; 
} 
2
$val = number_format($val, strlen(end(explode('.', $val)))); 

編輯:如果你也想處理整數上面不會有不增加的情況下,對於沒有小數

$val = number_format($val, (strstr($val, '.')) ? strlen(end(explode('.', $val))) : 0); 
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; 
}