我有以下功能将大号转换为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
错误。