java - CompactDecimalFormat 能否以某种方式用于格式化货币值?

标签 java internationalization formatting icu

我正在尝试使用 ICU4J 的 CompactDecimalFormat 将“12345.67”等值格式化为“$12K”。我似乎看不到如何在格式中包含货币:

CompactDecimalFormat cdFormat =
   CompactDecimalFormat.getInstance(Locale.US, CompactStyle.SHORT);
Currency currency = Currency.getInstance(Locale.US);
CurrencyAmount amount = new CurrencyAmount(12345.67, currency);
System.out.println(cdFormat.format(amount));

这导致打印输出

12K

我怎样才能让它考虑货币并输出“$12K”(以及其他区域设置 + 货币在其他区域设置和货币中适当的紧凑值)?

最佳答案

可以使用currency.getSymbol()。

关于java - CompactDecimalFormat 能否以某种方式用于格式化货币值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21534704/

相关文章:

java - 国际化Java

Java 日期时间差

python - 如何以编程方式找到 Python 已知的编解码器列表?

ruby-on-rails - 如何避免在生成的URL中添加默认语言环境?

java - 我无法对 String 参数使用 toUpperCase() 方法,可能出了什么问题?

C++ - 无法对齐输出

java - 如何在父类(super class)中使用子类方法?

java - Spring Security 为所有角色名称添加了前缀 "ROLE_"?

java - 垂直进度条有奇怪的背景,不可更改

string - 将回车 (\r) 转换为实际覆盖