java如何判断数字的位数?

判断一个数(小于10位)的位数。 输入999,则输出 “它是个3位的数!”

就是System.out.println("它是个"+ count+"位的数!"); 这句看不懂
按照num/10 语句,不是应该显示 它是个99位数吗?
为什么 显示它是个3位数?
java是如何判断为3位数的?

pupublic class HelloWorld{
public static void main(String[] args){
int num = 999; //整型 去小数点
int count = 0; //整型 去小数点
if (num >= 0 && num<=999999999){ //定位小于10位数
while(num != 0){ //判断num不等于0 继续循环
count++; //num不等于0 count加1
num/=10; /* num=num/10 第一次循环 99.9 取整 99 继续循环 直到0.99取整 等于0 停止循环 */
}
System.out.println("它是个"+ count+"位的数!");
} else{
System.out.println("输入有误!");
}

按照num/10 语句,不是应该显示 它是个99位数吗?java是如何判断为3位数的?

答 999/10 = 99 ;       此时num = 99  count=1;
    99/10=9;           此时num = 9  count=2;
    9/10=0;            此时num = 0  count=3;
    一共在while循环里执行了三次, 所以判断是3位数

提示

System.out.println("它是个"+ count+"位的数!"); 
这里输出的是count 这个变量,表达的是次数,
不是输出num 这个数,此时num经过循环已经等于0了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-05
不是这样的,因为num是int型的除以10后强转int小数点会自动丢失,所以int a=999/10=99
while条件里直到num是0才终止,再此之前都是a/10,然后count自加,一共执行了3次,最终count值为3,打印的时候得出是3位数。

其实还有一种更简单的方法int a=999; String test=a+""; System.out.println("它是个"+ test.length()+"位的数!"); 只要3行代码
相似回答