我有这个函数用于缩写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 :(得分:-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
。
供参考,见:
有关示例,请参阅: