PHP добавить K, M сокращение до целого числа

У меня есть эта функция для сокращения целого числа с 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

Решение

Если вы хотите отрезать фракцию, используйте 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,

Для справки смотрите:

Например, смотрите:

-1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector