У меня есть следующая функция для преобразования большого числа в 1.4K
, 800M
, так далее:
function number_abbr($number)
{
$abbrevs = [12 => 'T', 9 => 'B', 6 => 'M', 3 => 'K', 0 => ''];
foreach ($abbrevs as $exponent => $abbrev) {
if ($number >= pow(10, $exponent)) {
$display = $number / pow(10, $exponent);
$decimals = ($exponent >= 3 && round($display) < 100) ? 1 : 0;
$number = number_format($display, $decimals).$abbrev;
}
}
return $number;
}
Единственная проблема заключается в том, что он не работает для отрицательных чисел. Кто-нибудь есть идеи, как я могу сделать эту поддержку негативов?
Я пытался использовать abs()
но потом я получаю A non well formed numeric value encountered
ошибка.
Задача ещё не решена.
Других решений пока нет …