2010-05-24 7 views
1

Je cherche un moyen d'utiliser la fonction php number_format ou quelque chose de similaire qui va ajouter le millier de séparateur mais laissera toute partie décimale du nombre intatct sans et formatage de cela. Par exemple:php add thousandseperator sans ajuster les décimales

39845,25843 => 39,845.25843

347346,8 => 347,346.8

1000000 => 1.000.000

Merci

Répondre

1

Je suis avec peu d'imagination pour les noms de variables, mais cela va faire :

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)))); 

Edit: si vous souhaitez traiter des entiers aussi ci-dessus ne fonctionnera pas sans l'ajout d'un cas sans décimale

$val = number_format($val, (strstr($val, '.')) ? strlen(end(explode('.', $val))) : 0); 
0

comme ci-dessus, mais mon tour:

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; 
}