How to format numbers similar to Stack Overflow reputation format

前端 未结 8 1007
我在风中等你
我在风中等你 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条回答
  •  暖寄归人
    2020-11-27 07:22

    Here is CMS's version in PHP (in case someone needed it, like I did):

    function getRepString($rep) {
        $rep = intval($rep);
        if ($rep < 1000) {
            return (string)$rep;
        }
        if ($rep < 10000) {
            return number_format($rep);
        }
        return number_format(($rep / 1000), ($rep % 1000 != 0)) . 'k';
    }
    
    // TEST
    var_dump(getRepString(999));
    var_dump(getRepString(1000));
    var_dump(getRepString(9999));
    var_dump(getRepString(10000));
    var_dump(getRepString(10100));
    

    Output:

    string(3) "999"
    string(5) "1,000"
    string(5) "9,999"
    string(3) "10k"
    string(5) "10.1k"
    

提交回复
热议问题