是否可以使用 ICU 库自定义格式货币字符串,类似于它允许您通过提供格式字符串(例如“mm/dd/yyy”)来格式化时间字符串的方式。
因此,对于给定的语言环境(例如美元),如果我愿意,我可以让所有货币字符串返回“xxx.00 $ USD”。
见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 美元”,其中“,”用于小数部分的分离。
所以要小心。
您可以创建一个货币实例,然后如果可以安全地将其转换为DecimalFormat
if (((const NumberFormat*)fmt)->getDynamicClassID() == DecimalFormat::getStaticClassID())
{ const DecimalFormat* df = (const DecimalFormat*) fmt; ...
…然后你可以调用 applyPattern 就可以了。请参阅“特殊模式字符”下有关 ¤、¤¤、¤¤¤ 的信息
使用 ICU 库的createCurrencyInstance()。