PHP将K,M缩写添加到整数

时间:2017-08-10 12:16:52

标签: php

我有这个函数用于缩写KM单位的整数:

function infVal($n, $prec = 3)
{
    $size = preg_replace('/[^0-9]/', '', $n);
    $sizes = array("", "K", "M");

    if ($size == 0) { 
        return 'n/a'; 
    } 

    return round($size/pow(1000, ($i = floor(log($size, 1000)))), 0) . $sizes[$i];
}

但是,$n = 999999时此功能失败,显示1000K而不是999K

你能帮忙吗?

1 个答案:

答案 0 :(得分:-1)

如果您想减少分数,请使用floor()代替round()

function infVal($n)
{
    $size = preg_replace('/[^0-9]/', '', $n);
    $sizes = array("", "K", "M");

    if ($size == 0) { 
        return 'n/a'; 
    } 

    return floor($size/pow(1000, ($i = floor(log($size, 1000))))) . $sizes[$i];

}

注意我删除了未使用的参数$prec

供参考,见:

有关示例,请参阅: