ICU自定义货币格式(C ++)

时间:2009-12-21 18:36:11

标签: c++ currency icu

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

因此,对于给定的区域设置(比如美元),如果我希望我可以让所有货币字符串返回“xxx.00 $ USD”。

3 个答案:

答案 0 :(得分: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美元”,其中“,”用于分数部分分离。

所以要小心。

答案 1 :(得分:1)

您可以创建货币实例,然后将其转换为DecimalFormat

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

...然后你就可以调用applyPattern了。请参阅“特殊模式字符”

下的¤,¤¤,¤¤¤的信息

答案 2 :(得分:0)

使用ICU库的createCurrencyInstance()