-1

演習として、次のループでエラーを見つけるタスクがあります。ループのタスクは、"." の前の数字の桁数を出力することです。つまり、"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;
        }
    }
}
4

2 に答える 2

2

特殊なケースを個別に処理することは珍しくありません。

  • 0
  • -0 (該当する場合...)
  • データ型の最大値 (Double.MAX_VALUE)
  • データ型の最小値 (Double.MIN_VALUE)

だから私は0このように扱います:

if(number==0.0 ) {
    return 1;
}
于 2013-10-05T19:29:58.177 に答える