PHP实现大数字格式化成K/M/B结尾的简短形式
这个功能在显示文章访问量中会用到,在GitHub的star中也会有,比如:
232
简短显示为232
12556
简短显示为12.6k
(四舍五入)1232323
简短显示为1.2m
(四舍五入)32343533232
简短显示为32.3b
(四舍五入)
PHP实现代码:
/** * 转换数字为简短形式 * @param $n int 要转换的数字 * @param $precision int 精度 */ function shortenNumber($n, $precision = 1) { if ($n < 1e+3) { $out = number_format($n); } else if ($n < 1e+6) { $out = number_format($n / 1e+3, $precision) . 'k'; } else if ($n < 1e+9) { $out = number_format($n / 1e+6, $precision) . 'm'; } else if ($n < 1e+12) { $out = number_format($n / 1e+9, $precision) . 'b'; } return $out; }
参考资料:
这个逻辑实在是有问题。
如果大于 1e+12呢?