太大的整数

时间:2014-11-27 22:53:50

标签: java bluej

我正在使用Java制作一个程序,输出用户的星座。当我编译这段代码时,它会突出显示0219并说“整数太大”。我是初学者,所以如果这是一个愚蠢的错误,请你好。感谢

    System.out.println("Please enter your birthday month and day as a four digit number");
    System.out.println("(Ex: 0514 for May 14th):");
    double d = key.nextDouble();
    if (d >= 0101 && d <= 0120) {
        System.out.println("You are a Capricorn.");
    }
    else if (d >= 0121 && d <= **0219**) {
        System.out.println("You are an Aquarius.");
    }
    else if (d >= 0220 && d <= 0320) {
        System.out.println("You are a Pisces.");
    }
    else if (d >= 0321 && d <= 0420) {
        System.out.println("You are an Aries.");
    }
    else if (d >= 0421 && d <= 0521) {
        System.out.println("You are a Taurus.");
    }
    else if (d >= 0522 && d <= 0621 ) {
        System.out.println("You are a Gemini.");
    }
    else if (d >= 0622 && d <= 0723 ) {
        System.out.println("You are a Cancer.");
    }

2 个答案:

答案 0 :(得分:3)

以0开头的数字意味着它被解释为八进制,这使得&#34; 9&#34;无效的数字。

答案 1 :(得分:0)

输入数字不会保存前导0.如果输入0123,然后打印d,您将看到&#34; 123.0&#34;

摆脱所有领先的0。

所以你明白了:

import java.util.Scanner;
class Untitled {
    public static void main(String[] args) {
    System.out.println("Please enter your birthday month and day as a four digit number");
    System.out.println("(Ex: 0514 for May 14th):");
Scanner key = new Scanner(System.in);
    double d = key.nextDouble();
    if (d >= 101 && d <= 120) {
        System.out.println("You are a Capricorn.");
    }
    else if (d >= 121 && d <= 219) {
        System.out.println("You are an Aquarius.");
    }
    else if (d >= 220 && d <= 320) {
        System.out.println("You are a Pisces.");
    }
    else if (d >= 321 && d <= 420) {
        System.out.println("You are an Aries.");
    }
    else if (d >= 421 && d <= 521) {
        System.out.println("You are a Taurus.");
    }
    else if (d >= 522 && d <= 621 ) {
        System.out.println("You are a Gemini.");
    }
    else if (d >= 622 && d <= 723 ) {
        System.out.println("You are a Cancer.");
    }
}
}