用逗号作为小数分隔符解析Double的最佳方法?
2022-08-31 06:59:13
由于逗号用作小数分隔符,此代码将引发一个 NumberFormatException
:
String p="1,234";
Double d=Double.valueOf(p);
System.out.println(d);
有没有比: 更好的解析方法来获取: ?"1,234"
1.234
p = p.replaceAll(",",".");
由于逗号用作小数分隔符,此代码将引发一个 NumberFormatException
:
String p="1,234";
Double d=Double.valueOf(p);
System.out.println(d);
有没有比: 更好的解析方法来获取: ?"1,234"
1.234
p = p.replaceAll(",",".");
NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
Number number = format.parse("1,234");
double d = number.doubleValue();
更新:
要支持多语言应用,请使用:
NumberFormat format = NumberFormat.getInstance(Locale.getDefault());
您可以使用此功能(法语区域设置具有小数分隔符),
NumberFormat nf = NumberFormat.getInstance(Locale.FRANCE);
nf.parse(p);
或者,您可以使用 java.text.DecimalFormat
并设置相应的符号:
DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator(',');
symbols.setGroupingSeparator(' ');
df.setDecimalFormatSymbols(symbols);
df.parse(p);