我从用户那里获得输入并逐行读取.然后我使用split方法来标记输入.像这样:
Scanner input=new Scanner(System.in);
String input1=input.nextLine();
String[] tokens=input1.split(" ");
method1(Double.parseDouble(tokens[0]),Double.parseDouble(tokens[1]));
Run Code Online (Sandbox Code Playgroud)
这是method1:
public static void method1 (double a, double b) {
System.out.println(a);
System.out.println(b);
}
Run Code Online (Sandbox Code Playgroud)
当我声明3.5和5.3输出时;
3.5
5.3
Run Code Online (Sandbox Code Playgroud)
这里没有问题,但如果我声明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)
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
使用NumberFormat你可以做这样的事情:
NumberFormat f = NumberFormat.getInstance(Locale.FRANCE);
double myNumber = f.parse("3,5").doubleValue();
Run Code Online (Sandbox Code Playgroud)
现在您可以传递myNumber给接受double值的方法.
使用时Locale.FRANCE,告诉Java你double用,而不是写数字..
| 归档时间: |
|
| 查看次数: |
2333 次 |
| 最近记录: |