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

发布于 2024-08-15 18:56:02 字数 133 浏览 5 评论 0原文

是否可以使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

野味少女 2024-08-22 18:56:02

请参阅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 成员以及 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.

安人多梦 2024-08-22 18:56:02

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

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

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

You can create a currency instance, then if it is safe to cast it to a DecimalFormat

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

… then you can call applyPattern on it. See the information on ¤, ¤¤, ¤¤¤ under 'special pattern chars'

原谅过去的我 2024-08-22 18:56:02

使用 ICU 库的 createCurrencyInstance()

Use the ICU library's createCurrencyInstance().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文