if (num >= 0 && num<=999999999){
while(num != 0){ //假设num=9.9,那么判断num不等于0,条件成立,进入循环
count++; //count自加一
num/=10; //num=9.9除以10等于0.99再赋值给num,此时的num=0,99再进入while时判断条件不是继续成立?为什么就输出是一位数?没进入下次循环?
}
System.out.println("它是个"+ count+"位的数!");
} else{
System.out.println("输入有误!");
}
可以肯定了 你要明确类型 int 类型 是double类型的话 底层会发生自动提升的 也就是 就算是小数 也会被转换成int 类型,因此小数会被删除自留下整数 也就是自有一位数的原因,把你那int 类型改成double
比如
int a=9;
double b=9.7;
a*=b;
System.out.println(a);
正常的话答案是87.3
但是输出的是 87
对了 你先告诉我你 num是什么类型的 如果是int 类型的话 9。9的话会被默认去掉小数的