I have the following function to convert large number into 1.4K
, 800M
, etc:
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;
}
The only issue is that it is not working for negative numbers. Anyone have an idea how I can make this support negatives?
I've tried using abs()
but then I get A non well formed numeric value encountered
error.