У меня есть эта функция для сокращения целого числа с 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
,
Вы можете помочь?
Если вы хотите отрезать фракцию, используйте 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
,
Для справки смотрите:
Например, смотрите:
Других решений пока нет …