【发布时间】:2014-03-17 10:13:27
【问题描述】:
我从用户那里获取输入并逐行读取。然后我使用拆分方法对输入进行标记。像这样:
Scanner input=new Scanner(System.in);
String input1=input.nextLine();
String[] tokens=input1.split(" ");
method1(Double.parseDouble(tokens[0]),Double.parseDouble(tokens[1]));
这里是method1:
public static void method1 (double a, double b) {
System.out.println(a);
System.out.println(b);
}
当我声明 3.5 和 5.3 输出时;
3.5
5.3
这里没有问题,但如果我声明 3,5 和 5,3 我的代码在下面给出错误;
Exception in thread "main" java.lang.NumberFormatException: For input string: "3,5"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
我该如何解决这个问题?
【问题讨论】:
-
当您尝试将
42,42解析为 double 时,您认为会发生什么? -
3,5 怎么是双倍?显然它会抛出
NumberFormatException。 -
致投反对票的人:
42,7,在某些文化中,逗号是被广泛接受的数字。