Sam*_* SH 1 java mobile android exception
我使用十进制格式在 \'.\' 之后获取 2 个数字,当语言环境为美国或法国时,它工作正常,但当语言环境为 Ar(阿拉伯语)时,它会给出以下错误:
\n\njava.lang.NumberFormatException:对于输入字符串:“\xd9\xa0”
\n\n解决办法是什么?
\n\n if ( !option1.equals("False")) {\n\n double result = (statistic1 / i[0]) * 1.0 * 100;\n result = Double.parseDouble(new DecimalFormat("##.##").format(result));\n s1.setText(result + "%");\n o1.setText(option1);\n\n }\nRun Code Online (Sandbox Code Playgroud)\n
问题是十进制格式使用区域设置来表示数字,解决方案是将十进制符号默认为 Locale.US
final DecimalFormatSymbols decimalSymbol = new DecimalFormatSymbols(Locale.US);
DecimalFormat df = new DecimalFormat("##.##");
df.setDecimalFormatSymbols(decimalSymbol);
Run Code Online (Sandbox Code Playgroud)