struts2格式货币千分隔符

时间:2014-11-21 10:09:57

标签: java struts2 locale number-formatting currency-formatting

我有一个Struts 2项目,我在其中显示商品价格。我想更改符合本地化的格式。

例如:

 locale en_GB : 75.9
 locale el_GR : 75,9

目前,我使用两种语言环境的消息格式:

{0,number,##0.00}

我尝试将一种语言的格式更改为:

{0,number,##0,00}   

但显示的价格错误为:0,76(将所有内容移至小数部分)。

有什么建议吗?


编辑:

请注意,在我的情况下,我想强制逗号作为应用程序中所有语言环境的小数分隔符。

1 个答案:

答案 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_GRgr_GR似乎小数点分隔符仍然是点。不确定gr_GR是什么。

P.S:Here是与Struts2中的格式化模式和TextProvider相关的答案,可能有助于未来的访问者