2017-04-16 136 views
0

有人能告诉我为什么当我打字inputDouble(作为当然双),有条件不让我通过。我也尝试过这种浮动类型,结果是一样的。扫描仪类 - hasNextDouble()

编辑:条件传递时,我输入整数。

public static void main(String[] args) { 

    Scanner inputDouble = new Scanner(System.in); 

    System.out.println("Double"); 

    if(inputDouble.hasNextDouble()){ 
     System.out.println("Passed"); 
    } 

    inputDouble.close(); 

} 

感谢您的帮助。

解决:CODE是好的我打字输入法使用DOT INSTEAD逗号

+0

尝试我测试的代码,并通过了条件。 – Farahmand

+0

你能展示你传递的价值吗? –

+0

也许你的语言环境需要不同的格式,然后你提供了两倍的格式。试用'1.2'或'1,2'。 – Pshemo

回答

0

有条件的传球时,我打字整数。

这称为加宽类型,基本上,一个int类型可以转换到一个double类型安全而没有任何数据丢失。编译器将int隐式转换为double类型。

为:

谁能告诉我,为什么当我打字inputDouble(如 当然双),条件并不让我过去。

据我所知,你的代码没有问题,因为我已经在我的IDE上测试过它,并且一切似乎都按预期工作。但是,这可能与地区有关,因此请确保您使用Scanner的正确区域设置。使用,作为分隔符为双/十进制值,而不是.

+0

但我仍然不知道为什么有条件不通过例如3.0 – Memes