Java 计算整数的位数

Java Count the Number of Digits in an Integer

这是一个用java

计算整数位数的示例代码
class CountDigits {
    private static int countDigits(int n){
       
        return n != 0 ? ((int) Math.floor(Math.log10(n) + 1)) : -1;
    }

    public static void main(String[] args) {
        int number = 125;
        System.out.println("Number of digits : " + countDigits(number));
    }
}

我要求解释这一行

    return n != 0 ? ((int) Math.floor(Math.log10(n) + 1)) : -1;

为什么要使用?和 : 谢谢

log10 的整数部分给出了数字中数字位数的度量。 例如 log10(1000) 是 3,log10(10000) 是 4.

所以整数部分加1就是小数位数。

但是 log10(0) 未定义,会引发 运行 时间错误。短语

  n != 0 ? expr1 : expr2

确保在 n 为 0 时不计算 expr1