php ondalık yerleri ayarlama olmadan thousandseperator eklemek

3 Cevap php

Ben php number_format işlevi veya bin seperatörünü katacak benzer bir şey kullanmak ama bu olmadan ve biçimlendirme sayı intatct herhangi ondalık bölümünü bırakacak bir yol arıyorum. Örneğin:

39845,25843 => 39,845.25843

347346,8 => 347,346.8

1000000 => 1.000.000

Teşekkürler

3 Cevap

Ben değişken adları için biraz hayal gücü ile değilim, ama bu yapacak:

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

Düzenleme: tamsayılar işlemek istiyorsanız da yukarıdaki hiçbir ondalık için bir dava eklemeden olmadan çalışmaz

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

Yukarıdaki ama benim büküm aynı:

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