ICU 自定义货币格式 (C++)
是否可以使用 ICU 库自定义格式货币字符串,类似于它通过提供格式字符串(例如“mm/dd/yyy”)来格式化时间字符串的方式。
因此,对于给定的区域设置(例如美元),如果我愿意,我可以让所有货币字符串返回“xxx.00 $ USD”。
Is it possible to custom format currency strings using the ICU library similar to the way it lets you format time strings by providing a format string (e.g. "mm/dd/yyy").
So that for a given locale (say USD), if I wanted I could have all currency strings come back "xxx.00 $ USD".
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
请参阅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
成员以及 then 使用 setMaximumIngegerDigits 或其他函数来满足您的需要 - 这将更加本地化。尽量不要对任何文化做出任何假设。因为在某些国家/地区,“10,000 USD”可能会被误解为“$ 10”,其中“,”用于分隔小数部分。所以要小心。
See http://icu-project.org/apiref/icu4c/classDecimalFormat.html,
Specifically: http://icu-project.org/apiref/icu4c/classDecimalFormat.html#aadc21eab2ef6252f25eada5440e3c65
For pattern syntax see: http://icu-project.org/apiref/icu4c/classDecimalFormat.html#_details
I didn't used this but from my knowledge of ICU this is the direction.
However I would suggest to use:
http://icu-project.org/apiref/icu4c/classNumberFormat.html and
createCurrencyInstance
member and then use setMaximumIngegerDigits or other functions to make what you need -- that would be much more localized. Try not assume anything about any culture. Because "10,000 USD" my be misinterpreted as "$ 10" in some countries where "," used for fraction part separation.So be careful.
您可以创建一个货币实例,然后如果可以安全地将其转换为 DecimalFormat
… 然后就可以调用 applyPattern 了。请参阅“特殊模式字符”下有关 ¤、¤¤、¤¤¤ 的信息
You can create a currency instance, then if it is safe to cast it to a DecimalFormat
… then you can call applyPattern on it. See the information on ¤, ¤¤, ¤¤¤ under 'special pattern chars'
使用 ICU 库的 createCurrencyInstance()。
Use the ICU library's createCurrencyInstance().