Java 用nextDouble扫描double

Java 用nextDouble扫描double,java,double,Java,Double,我正在学习Java,当我尝试输入双浮点数时遇到了一些问题 像这样 import java.util.Scanner; class Program { public static void main (String[] args) { Scanner inp = new Scanner(System.in); double number = inp.nextDouble(); System.out.println(num

我正在学习Java,当我尝试输入双浮点数时遇到了一些问题

像这样

import java.util.Scanner;

class Program {
     public static void main (String[] args) {
           Scanner inp = new Scanner(System.in);
           double number = inp.nextDouble();
           System.out.println(number);
     }
}
如果我输入1000,我的输出将是1000.0。但如果输入1000.0,则会出现以下错误:

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:909)
    at java.util.Scanner.next(Scanner.java:1530)
    at java.util.Scanner.nextDouble(Scanner.java:2456)
    at test.Test.main(Test.java:6)
Java Result: 1

我如何解决这个问题呢?

这可能是由于1000.0和1000,0之间的语言环境差异造成的。。。所以你可以试试这个:

Scanner inp = new Scanner(System.in);
inp.useLocale(Locale.ENGLISH);

我希望这能有所帮助。

如果您输入
1000,0
?@marounnaroun我想这取决于您所在的国家。我在意大利,十进制数字是用逗号而不是点写的,所以如果我输入
1000.0
我会得到一个
InputMismatchException
,如果我输入
1000,0
一切正常。哇。。我不知道,谢谢我的朋友。是的,我还听说在法国,
在数字中充当
,@反斜杠你用哪个语言环境检查它?@sansix我用默认的语言环境检查,那就是
语言环境。意大利
对于meScanner来说没有这样的方法,它是
使用语言环境
,但有一个问题。找不到symbol:symbol:variable Locale location:class Program-->alvardon您必须导入
java.util.Locale
,现在它可以工作了。谢谢大家!@谢谢你指出我的打字错误。阿尔瓦登-很高兴它能工作!