Java如何将DecimalFormat的小数点分隔符从逗号更改为点/点?
我有一个疯狂的方法,可以将BigDecimal值转换为漂亮且可读的字符串。
private String formatBigDecimal(BigDecimal bd){ DecimalFormat df = new DecimalFormat();
df.setMinimumFractionDigits(3);
df.setMaximumFractionDigits(3);
df.setMinimumIntegerDigits(1);
df.setMaximumIntegerDigits(3);
df.setGroupingSize(20);
return df.format(bd);
}
但是,它还会产生一个所谓的分组分隔符","
,使我的所有值都这样显示:
xxx,xxx
我确实需要分隔符是点或点而不是逗号。有人知道如何完成这个小壮举吗?
我已阅读本,尤其是这种死亡,但现在我无法找到一个方法来完成这件事。我是否以错误的方式处理?有更优雅的方法吗?甚至可能是一个解决方案,说明了不同的本地号码表示形式,因为按照欧洲标准,逗号将是完美的。
回答:
你可以通过设置区域设置或使用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);
可以从Locale.getDefault()获得currentLocale,即:
Locale currentLocale = Locale.getDefault();
以上是 Java如何将DecimalFormat的小数点分隔符从逗号更改为点/点? 的全部内容, 来源链接: utcz.com/qa/429908.html