我需要从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”。我该如何解决?
感谢
答案 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 以非常简单明了的方式解释与您的问题相关的几乎所有内容。