德国的Java-Scanner区域设置在汇总双值时返回0

mee*_*mee 2 java

这是一个使用Java Scanner的小程序,它读取双值的文件并总结.

我正在验证使用某些语言环境,而对于德语\德语,该值为零.

这是代码片段,

s= new Scanner((Readable) new BufferedReader(new FileReader("ScanNum")));
s.useLocale(Locale.GERMAN);
System.out.println(s.locale());
while(s.hasNextDouble())
{
sum+=s.nextDouble();
}
Run Code Online (Sandbox Code Playgroud)

和保存双重值的文件,8.5 32,767 3.14159 1,000,000.1

其他语言环境返回的值是1032778.74159.

请指教,谢谢!

Jon*_*eet 7

8.5 double基本上不是德语语言环境中的有效值.德语(和许多其他欧洲语言环境),用作小数分隔符,并.用作千位分隔符.所以在德语中,你的文本文件必须如下所示:

8,5
32.767
3,14159
1.000.000,1
Run Code Online (Sandbox Code Playgroud)