【问题标题】:Scanning double with Scanner in Java from Console从控制台使用 Java 中的 Scanner 进行双重扫描
【发布时间】:2016-08-01 09:06:10
【问题描述】:

我想从标准输入中读取一个双数,但我总是得到这个异常:

java.util.InputMismatchException

import java.util.Scanner;

public class ScanDouble {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        double d = scan.nextDouble();
        System.out.println("Double: " + d);
    }
}

如果输入是整数没关系,但是当双精度时,我得到了异常。

线程“main”中的异常 java.util.InputMismatchException 在 java.util.Scanner.throwFor(Scanner.java:864) 在 java.util.Scanner.next(Scanner.java:1485) 在 java.util.Scanner.nextDouble(Scanner.java:2413) 在 ScanDouble.main(ScanDouble.java:10)

【问题讨论】:

  • 您的输入看起来如何?
  • 你的输入是什么,有什么例外?
  • 我的输入是这样的:10.0 异常如上所示。
  • 我会检查您的语言环境。某些语言环境不接受 . 作为句点。
  • @PeterLawrey 你是对的。这就是问题所在。

标签: java


【解决方案1】:

认为这是小数分隔符的问题。试试输入10,0

如果要扫描带点的值,请将语言环境设置为 locale UK:

Scanner scan = new Scanner(System.in);
scan.useLocale(Locale.UK);
double d = scan.nextDouble();
System.out.println("Double: " + d);

【讨论】:

    猜你喜欢
    • 2012-08-18
    • 2017-07-12
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 2012-08-05
    • 2017-02-19
    • 1970-01-01
    • 2012-05-19
    相关资源
    最近更新 更多