我正在尝试将NumberValue格式化为当前区域设置格式的String。
例如,对于Locale.德国,这些将是我试图获得的结果:
我尝试过的:
String test1 = NumberFormat.getInstance().format(1.1);
// -> 1,1
String test2 = NumberFormat.getCurrencyInstance().format(1.1);
// -> 1,10 €
字符串
我怎样才能得到与第二个例子相同的格式,而不带货币符号?或者,我怎样才能确保第一个例子的结果总是具有当前区域所需的小数量?
编辑:由于有些货币有0,2或3位小数,我不认为将小数设置为固定金额会有正确的结果。
此外,有些货币的符号在前面,有些在后面,所以切断最后一个字符可能也不起作用。
http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf
2条答案
按热度按时间yyhrrdl81#
java.util.Currency
提供了必要的信息。在纯Java代码中打印不带货币符号的货币值的合理方法是获取一个通用NumberFormat
示例,并将其配置为使用相应Currency
对象定义的位数:字符串
如果您需要一种特定的货币,而不是您使用的区域设置的默认货币,请使用
Currency.getInstance()
的String
覆盖,并提供适当的货币代码。x6492ojm2#
这里有一个更健壮的方法(对于某些货币,minimumFractionDigits和maximumFractionDigits不一定等于
Currency.getDefaultFractionDigits()
):字符串