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;
}

 

参考资料:

  1. Shorten long numbers to K/M/B?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

昵称 *