1

我有一个显示项目价格的 Struts 2 项目。我想根据本地化更改格式。

例如:

 locale en_GB : 75.9
 locale el_GR : 75,9

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

{0,number,##0.00}

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

{0,number,##0,00}   

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

有什么建议么?


编辑:

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

4

1 回答 1

1

您可以使用接受模式和DecimalFormatSymbols的 DecimalFormat构造函数,由其构造函数使用区域设置创建:

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 demoel_GR顺便说一句,我用过gr_GR,小数点分隔符似乎仍然是点。不确定是什么gr_GR

PS:是与 Struts2 中的格式化模式和 TextProvider 相关的答案,可能对未来的访问者有所帮助

于 2014-11-21T10:37:19.177 回答