所以这是我的计划:
// 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会将其输出为整数:
如果我输入2个或3个以上小数点的数字,程序将知道输入不正确。那么为什么它会忽略3个小数位并将其输出为int?
答案 0 :(得分:1)
Stream::nextInt
从流中读取整数
2,444
是默认语言环境(2,444 = 2444
)中的整数。
如果您想要读取十进制数字,则需要使用Stream::nextDouble
或其他适当的方法。