在Java中输入Int而变量声明为Double,反之亦然

时间:2016-10-14 03:56:41

标签: java if-statement while-loop int double

请帮忙。

声明需要打印:

"请输入您家的保险价值作为整数:"

这很简单,但是如果我输入一个双精度数字,则另一个语句打印出来:"你只能输入一个整数:"

这就是我被困的地方。无论如何,我都会遇到致命的逻辑错误。

这是我的代码以声明变量开头并跳过代码之间:

double homeInsVal = 0.0;

<other code>

System.out.printf("%nPlease enter the insured value of your home as a whole  number:  "); 
homeInsVal = input.nextDouble();
{
 if (homeInsVal >= 0.0)
 {
  System.out.printf("%nYou must only enter an integer:  ");
  homeInsVal = input.nextInt(); 
 }
}

我的逻辑完全没了。我将homeInsVal声明为double的原因是因为如果我在输入小数时将其声明为Int以故意提示第二个语句我得到一个逻辑错误我的代码终止但是我当前编写的代码的方式是即使输入整数,也会打印第二个提示。

请帮忙!

注意:这是一个简介Java类,虽然乞丐不能选择,但请尽快解释。谢谢!

2 个答案:

答案 0 :(得分:0)

不清楚问题是什么。如果您想检查输入的值是整数还是双精度,可以参考以下帖子

How to find out if the value contained in a string is double or not

How to check if a double value has no decimal part

答案 1 :(得分:0)

您想要一个整数,但用户可以输入他们喜欢的内容,包括字母和其他垃圾。但是你可以确定用户输入某些东西,即一个字符串。此外,要将数据发送到您的程序,用户将按 Enter ,这会将换行符char(S)放入缓冲区。

这一切意味着什么?这意味着你需要这样的东西:

String line = input.nextLine();
try {
    Integer number = Integer.parseInt(line);
} catch (NumberFormatException e) {
    // input wasn't a number
}

这不是全部,但希望你可以在此基础上继续发展。