我有一个Struts 2项目,我在其中显示商品价格。我想更改符合本地化的格式。
例如:
locale en_GB : 75.9
locale el_GR : 75,9
目前,我使用两种语言环境的消息格式:
{0,number,##0.00}
我尝试将一种语言的格式更改为:
{0,number,##0,00}
但显示的价格错误为:0,76
(将所有内容移至小数部分)。
有什么建议吗?
编辑:
请注意,在我的情况下,我想强制逗号作为应用程序中所有语言环境的小数分隔符。
答案 0 :(得分:1)
您可以使用DecimalFormat Constructor同时接受由DecimalFormatSymbols创建的区域设置模式和its constructor:
Locale greekLocale = new Locale("el", "GR");
// Thousands separator, decimal separator etc...
DecimalFormatSymbols greekDFS = DecimalFormatSymbols.getInstance(greekLocale);
// Your pattern, their symbols
NumberFormat nf = new DecimalFormat("#,##0.0##", greekDFS);
看一下 running demo 。我顺便使用el_GR
,gr_GR
似乎小数点分隔符仍然是点。不确定gr_GR
是什么。
P.S:Here是与Struts2中的格式化模式和TextProvider相关的答案,可能有助于未来的访问者