如何将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
我确实需要分隔符是点或点而不是逗号。
有没有人知道如何完成这个小壮举?
我已经读过这篇文章了,特别是现在已经死了,但是我找不到办法让它完成。
我是以错误的方式接近这个吗?这样做有更优雅的方式吗?也许甚至是一个解决不同本地数字表示的解决方案,因为逗号将完全符合欧洲标准。
没有找到相关结果
已邀请:
6 个回复
粳饶瓢部
或者,您可以使用DecimalFormatSymbols类更改格式方法生成的格式化数字中出现的符号。这些符号包括小数分隔符,分组分隔符,减号和百分号等等:
currentLocale可以从Locale.getDefault()获得,即:
链眷克袒姜
即使用正确的区域设置。
琳娘
冉案
斯洛文尼亚语语言环境应该有一个小数点逗号。猜猜我对数字有一些奇怪的误解。
我编辑了我的一部分消息,因为它被证明是由于人为错误(忘记提交数据并且看错了),因此没有任何意义。 对于任何Java .toString()函数,可以说与BigDecimal相同。我想这在某些方面很好。序列化例如或调试。有一个唯一的字符串表示。 另外正如其他人提到的使用格式化工作正常。只需使用格式化程序,同样适用于JSF前端,格式化程序可以正常工作并了解区域设置。
谷靛
鞋扣蚊冈借