int x = 999; int sum = 0; for(int i = 10;i <= 999999999;i *= 10){ if(x / i != 0){ sum++; }else{ sum++; break; } } System.out.println("它是个"+sum+"位的数!"); } 如果我想测试10位数以上的时候,int i的范围就不够了,可是为什么用long也还是不行,只是11位数就不行了?
long和int类型的范围是一样的-2,147,483,648 to 2,147,483,647
看看吧只有10维数