1

是否可以使用 ICU 库自定义格式货币字符串,类似于它允许您通过提供格式字符串(例如“mm/dd/yyy”)来格式化时间字符串的方式。

因此,对于给定的语言环境(例如美元),如果我愿意,我可以让所有货币字符串返回“xxx.00 $ USD”。

4

3 回答 3

1

http://icu-project.org/apiref/icu4c/classDecimalFormat.html

具体来说:http: //icu-project.org/apiref/icu4c/classDecimalFormat.html#aadc21eab2ef6252f25eada5440e3c65

有关模式语法,请参阅:http: //icu-project.org/apiref/icu4c/classDecimalFormat.html#_details

我没有使用这个,但根据我对 ICU 的了解,这是方向。

但是我建议使用:

http://icu-project.org/apiref/icu4c/classNumberFormat.htmlcreateCurrencyInstance成员,然后使用setMaximumIngegerDigits或其他功能来制作您需要的东西 - 这将更加本地化。尽量不要假设任何文化。因为“10,000 美元”在某些国家/地区被误解为“10 美元”,其中“,”用于小数部分的分离。

所以要小心。

于 2009-12-28T07:20:18.037 回答
1

您可以创建一个货币实例,然后如果可以安全地将其转换为DecimalFormat

if (((const NumberFormat*)fmt)->getDynamicClassID() == DecimalFormat::getStaticClassID()) 
  {   const DecimalFormat* df = (const DecimalFormat*) fmt; ...

…然后你可以调用 applyPattern 就可以了。请参阅“特殊模式字符”下有关 ¤、¤¤、¤¤¤ 的信息

于 2010-07-01T22:11:07.160 回答
0

使用 ICU 库的createCurrencyInstance()

于 2009-12-21T18:55:06.520 回答