0

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.

kjdion84
  • 9,552
  • 8
  • 60
  • 87

0 Answers0