从String创建一个带有两位小数的Double

时间:2014-10-29 13:09:07

标签: java


我需要从String创建一个带有两位小数的Double-换句话说,我需要将“100”变成100.00。
令人惊讶的:

double d = Double.valueOf("500");
DecimalFormat df = new DecimalFormat("#.00");
System.out.print(df.format(d));

打印出来:

500,00

我需要“500.00”。我该如何解决?
感谢

1 个答案:

答案 0 :(得分:1)

您可以通过设置区域设置或使用DecimalFormatSymbols来更改分隔符。

如果您希望分组分隔符成为一个点,则可以使用欧洲语言环境:

NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMAN);
DecimalFormat df = (DecimalFormat)nf;

或者,您可以使用DecimalFormatSymbols类更改format方法生成的格式化数字中出现的符号。这些符号包括小数分隔符,分组分隔符,减号和百分号等等:

DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(currentLocale);
otherSymbols.setDecimalSeparator(',');
otherSymbols.setGroupingSeparator('.'); 
DecimalFormat df = new DecimalFormat(formatString, otherSymbols);

另外,您可能会觉得这很有用: http://tutorials.jenkov.com/java-internationalization/decimalformat.html 以非常简单明了的方式解释与您的问题相关的几乎所有内容。