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

回到顶部