寻找数字计数循环中的错误

时间:2013-10-05 19:26:36

标签: java loops

我们在练习中需要在以下循环中查找错误。循环的任务是在“。”之前输出一个数字的位数,即“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;
        }
    }
}

2 个答案:

答案 0 :(得分:2)

单独处理特殊情况并不罕见:

  • 0
  • -0(适用时......)
  • 数据类型的最大值(Double.MAX_VALUE)
  • 数据类型的最小值(Double.MIN_VALUE)

所以我这样处理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;
       }
    }

  }