DecimalFormat 和阿拉伯语区域设置

Sam*_* SH 1 java mobile android exception

我使用十进制格式在 \'.\' 之后获取 2 个数字,当语言环境为美国或法国时,它工作正常,但当语言环境为 Ar(阿拉伯语)时,它会给出以下错误:

\n\n

java.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                                    }\n
Run Code Online (Sandbox Code Playgroud)\n

Sam*_* SH 5

问题是十进制格式使用区域设置来表示数字,解决方案是将十进制符号默认为 Locale.US

final DecimalFormatSymbols decimalSymbol = new DecimalFormatSymbols(Locale.US);
                                        DecimalFormat df = new DecimalFormat("##.##");
                                        df.setDecimalFormatSymbols(decimalSymbol);
Run Code Online (Sandbox Code Playgroud)