我已经设法能够检查输入并判断它是否为int,并且询问用户是否不是。 但是我想添加一个检查,通过四舍五入将双打转换为整数。我玩过Math.round方法,但无法正常工作。
public static int getInteger(String prompt)
{
int input = 0;
Scanner user_input = new Scanner( System.in );
System.out.print("Enter a integer: ");
while (!user_input.hasNextInt()) {
System.out.println("Is not a valid number.");
user_input.next();
}
return input;
}
如果有人能告诉我怎么样,那会很棒,欢呼。
答案 0 :(得分:1)
public static int getInteger()
{
int input = 0;
Scanner user_input = new Scanner( System.in );
System.out.print("Enter a integer: ");
while (!user_input.hasNextInt() && !user_input.hasNextDouble()) {
System.out.println("Is not a valid number.");
user_input.next();
}
if(user_input.hasNextInt()) {
input = user_input.nextInt();
}
else {
input = Math.round((float) user_input.nextDouble()); //I assume here that your number is small as you said
}
return input;
}
答案 1 :(得分:0)
Math.round(double)返回一个long。因此,为了将其转换为您需要执行的int:
int value = (int) Math.round(double);
但是,我建议在这种情况下使用long而不是int,因为值可能不适合int:
long value = Math.round(double);
另一方面,Math.round(float)将返回一个int。