PHP - Get length of digits in a number

前端 未结 10 1396
长发绾君心
长发绾君心 2021-01-01 12:40

I would like to ask how I can get the length of digits in an Integer. For example:

$num = 245354;
$numlength = mb_strlen($num);

$numl

10条回答
  •  一个人的身影
    2021-01-01 13:20

    The following function work for either integers or floats (read comments for more info):

    /* Counts digits of a number, even floats.
     * $number: The number.
     * $dec: Determines counting digits:
     * 0: Without decimal
     * 1: Only decimal
     * 2: With decimal (i.e. all parts)
     */
    
    // PHP5
    function digits_count($number, $dec = 0) {
        $number = abs($number);
        $numberParts = explode(".", $number);
        if (!isset($numberParts[1]))
            $numberParts[1] = 0;
        return ($dec == 1 ? 0 : strlen($numberParts[0])) +
            ($dec == 0 ? 0 : strlen($numberParts[1]));
    }
    
    // PHP7
    function digits_count($number, int $dec = 0) : int {
        $number = abs($number);
        $numberParts = explode(".", $number);
        return ($dec == 1 ? 0 : strlen($numberParts[0])) +
            ($dec == 0 ? 0 : strlen($numberParts[1] ?? 0));
    }
    

    I recommend you using PHP7 one, it's shorter and cleaner.

    Hope it helps!

提交回复
热议问题