php添加千位分隔符而不调整小数位

时间:2010-05-24 13:31:28

标签: php number-formatting

我正在寻找一种方法来使用php number_format函数或类似的东西来添加千位分隔符但是会留下数字的任何小数部分而没有和格式化。例如:

39845.25843 => 39,845.25843

347346.8 => 347,346.8

1000000 =>百万

由于

3 个答案:

答案 0 :(得分:2)

$val = number_format($val, strlen(end(explode('.', $val))));

编辑:如果你想处理整数,如果没有添加无小数

的情况,上述将无法工作
$val = number_format( $val, (strstr($val, '.')) ? strlen(end(explode('.', $val))) : 0 );

答案 1 :(得分:1)

我对变量名称缺乏想象力,但这样做:

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

答案 2 :(得分: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;
}