【问题标题】:Entering a Int while variable declared Double and vice versa in Java在 Java 中输入一个 Int 而变量声明为 Double 反之亦然
【发布时间】:2017-02-23 09:16:08
【问题描述】:

请帮忙。

声明需要打印:

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

这很简单,但是如果我输入一个双精度,另一个语句会打印:“您必须只输入一个整数:”

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

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

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 类,虽然乞丐不能成为选择者,但请尽可能简单地解释。谢谢!

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

    这不是故事的全部,但希望您能以此为基础。

    【讨论】:

      猜你喜欢
      • 2014-05-11
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 2014-02-07
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多