为什么11位数用long定义还是超出范围
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位数就不行了?
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位数就不行了?
2016-07-03
举报