2017-08-10 27 views
0

我有此功能用於與KM單位縮寫的整數:PHP添加K,M縮寫爲整數

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此函數失敗。

你能幫忙嗎?

+0

參數'$ prec'似乎是未使用, 是對的嗎? – localheinz

+0

它實際上並沒有失敗,它只是將'999.999'加到'1000',就是這樣。你期望什麼,你只是想削減小數? – localheinz

回答

-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

僅供參考,請參閱:

有關示例,請參見: