我们在练习中需要在以下循环中查找错误。循环的任务是在“。”之前输出一个数字的位数,即“32782.12”将等于5.现在到目前为止,我真的没有看到任何错误。唯一的情况是输入= 0不会导致正确的答案 - 你有任何提示吗?
public class countingDigits {
public static void main(String[] args) {
double number = 88888888.99;
for(int digits=0; digits<6; ++digits) {
if (number*number < 1) {
System.out.println("The number has " + digits + " digits");
break;
}
number /= 10;
}
}
}
答案 0 :(得分:2)
单独处理特殊情况并不罕见:
所以我这样处理0
:
if(number==0.0 ) {
return 1;
}
答案 1 :(得分:1)
public void countingDigits {
public static void main(String[] args){
double number = 88888888.99;
if (number == 0){
System.out.println("The number has 1 digits");
}else {
for(int digits=0; digits<20; ++digits) {
if (number < 1) {
System.out.println("The number has " + digits + " digits");
break;
}
number /= 10;
}
}
}