Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php添加千位分隔符,不调整小数点_Php_Number Formatting - Fatal编程技术网

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

php添加千位分隔符,不调整小数点,php,number-formatting,Php,Number Formatting,我正在寻找一种方法来使用php number_format函数或类似的东西,它将添加千位分隔符,但将数字的任何小数部分保留为intattct,而不包含和格式化。例如: 39845.25843=>39845.25843 347346.8=>347346.8 1000000=>1000000 谢谢我对变量名没有什么想象力,但这可以: function conv($str) { $t = explode(".", $str); $ret = number_format(reset($t

我正在寻找一种方法来使用php number_format函数或类似的东西,它将添加千位分隔符,但将数字的任何小数部分保留为intattct,而不包含和格式化。例如:

39845.25843=>39845.25843

347346.8=>347346.8

1000000=>1000000


谢谢

我对变量名没有什么想象力,但这可以:

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