不使用字符串API的数字中的位数



我有一个要求,需要查找整数中的位数。我搜索了一下,找到了一些窍门。但我也发展出了自己的把戏。我只是想知道知道这是不是正确的方式,知道数字在整数。

for (int i = 1; i < 11; i++) {
    if (Math.abs(number) < (j = Math.pow(10, i))) {
        System.out.println("Number of Digits : "+i);
        break;
    }
}

我把11作为限制,因为最大整数是11位数。请告诉我这是不是一个正确的方式。

请注意,我没有使用任何字符串api的选项。

您的解决方案不会很好地执行。对于一项简单的任务来说,它太复杂了。如果这个数字再大一点,那就太慢了。

您应该使用:

String.valueOf(number).length()

简单,易于阅读,而且它的规模会更好。

最新更新