Fos*_*osh 4 java double java.util.scanner
我对 Java 相当陌生,我正在制作一个简单的计算器。问题是,当我输入的数字是“3.1”时,它会给出异常错误,但当写入“3,1”时,它工作得很好。
\n\n然而,我的朋友有一个稍微更高级的计算器(带有字符串解析),当我运行他的代码时,会发生相反的情况:3,1 给出异常错误,3.1 工作完美。
\n\n我很想知道是什么导致了这些不同的行为。
\n\n我刚才做了这个简单的求和,同样的情况发生了,我将在几分钟内编辑并输入他的计算器代码
\n\nimport java.util.Scanner;\n\npublic class Tutorial_7 {\n public static void main(String args[]){\n Scanner scan = new Scanner(System.in);\n double num1, num2;\n\n System.out.println("Introduza os dois n\xc3\xbameros");\n\n System.out.println("1\xc2\xba: ");\n num1 = scan.nextDouble();\n System.out.println("2\xc2\xba: ");\n num2 = scan.nextDouble();\n\n System.out.println((num1 + num2));\n scan.close();\n }\n\n}\nRun Code Online (Sandbox Code Playgroud)\n\n最终编辑:他确实使用Double.parseDouble(). 明白了,区别确实在于它的本地化位置。应该寻找它,但以前从未听说过这个概念。
谢谢
\n因为您使用的是差异Local,一个可以用点扫描它.,另一个用逗号,来修复它,所以您应该为您的扫描仪修复一个,如下所示:
Scanner scan = new Scanner(System.in).useLocale(Locale.US);
Run Code Online (Sandbox Code Playgroud)
例如:
Local.US方式扫描您的替身.6.6Locale.FRENCH方式扫描您的替身,6,6