是否可以使用ICU库自定义货币字符串格式,类似于它通过提供格式字符串(例如“mm / dd / yyy”)来格式化时间字符串的方式。
因此,对于给定的区域设置(比如美元),如果我希望我可以让所有货币字符串返回“xxx.00 $ USD”。
答案 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.html和createCurrencyInstance
成员以及然后使用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()。