How to format numbers similar to Stack Overflow reputation format

前端 未结 8 1027
我在风中等你
我在风中等你 2020-11-27 06:41

I want to convert a number into a string representation with a format similar to Stack Overflow reputation display.

e.g.

  • 999 == \'999\'
  • 1000 =
8条回答
  •  萌比男神i
    2020-11-27 07:29

    Here is a function in PHP which is part of iZend - http://www.izend.org/en/manual/library/countformat:

    function count_format($n, $point='.', $sep=',') {
        if ($n < 0) {
            return 0;
        }
    
        if ($n < 10000) {
            return number_format($n, 0, $point, $sep);
        }
    
        $d = $n < 1000000 ? 1000 : 1000000;
    
        $f = round($n / $d, 1);
    
        return number_format($f, $f - intval($f) ? 1 : 0, $point, $sep) . ($d == 1000 ? 'k' : 'M');
    }
    

提交回复
热议问题