我是Java的新手,我正在制作一个简单的计算器。问题是当我的输入数字是例如" 3.1"它给出了一个异常错误,但在编写" 3,1"它运作得很好。
然而,我的朋友有一个稍微高级的计算器(使用字符串解析),当我运行他的代码时,相反的情况发生:3,1给出异常错误,3.1工作完美。
我期待知道造成这些不同行为的原因。
我刚刚做了这个简单的总结,同样的事情发生了,我将在几分钟内编辑并输入他的计算器代码
import java.util.Scanner;
public class Tutorial_7 {
public static void main(String args[]){
Scanner scan = new Scanner(System.in);
double num1, num2;
System.out.println("Introduza os dois números");
System.out.println("1º: ");
num1 = scan.nextDouble();
System.out.println("2º: ");
num2 = scan.nextDouble();
System.out.println((num1 + num2));
scan.close();
}
}
最终修改:他确实使用了Double.parseDouble()
。知道了,区别在于它的本地化。应该寻找它但从未听过这个概念。
谢谢
答案 0 :(得分:1)
因为您使用差异Local
,因此可以使用点.
进行扫描,使用逗号,
进行扫描以修复它,您应该为您的扫描仪修复一个:
Scanner scan = new Scanner(System.in).useLocale(Locale.US);
例如:
Local.US
,则应使用.
扫描双倍
像6.6
Locale.FRENCH
,则应该扫描双倍
一个,
,如6,6