为什么Java输出十进制数作为整数?

时间:2018-01-10 15:38:32

标签: java

所以这是我的计划:

// Creates a Scanner object that monitors keyboard input
static Scanner userInput = new Scanner(System.in);

public static void main(String[] args)
{

    System.out.print("How old are you? ");

    int age = checkValidAge();

    if (age != 0)
    {
    System.out.println("You are " + age + " years old");
    }

}

public static int checkValidAge() 
{

    try
    {
        return userInput.nextInt(); // nextInt() receives the user input
    }

    catch (InputMismatchException e)
    {
        userInput.next(); // Skips the last user input and waits for the next
        System.out.print("That isn't a whole number");
        return 0;
    }

}

当我输入一个带有3位小数的数字时,Java会将其输出为整数:

enter image description here

如果我输入2个或3个以上小数点的数字,程序将知道输入不正确。那么为什么它会忽略3个小数位并将其输出为int?

1 个答案:

答案 0 :(得分:1)

Stream::nextInt从流中读取整数 2,444是默认语言环境(2,444 = 2444)中的整数。

如果您想要读取十进制数字,则需要使用Stream::nextDouble或其他适当的方法。