我怎样才能让NumberFormat使用一种货币,但使用小数美分/便士?

时间:2018-06-25 09:30:42

标签: java scala format currency number-formatting

我想使用fire()NumberFormat转换为Double。我目前使用的是基于货币语言环境的String,但这会将NumberFormat舍入到小数点后两位。我如何才能不对货币进行四舍五入以使其包含小数便士呢?

如果我有

Double

然后我们应该有val doubleFormatMoney = 1.032323135 val format = NumberFormat.getCurrencyInstance(Locale.US) val stringFormatMoney = format.format(doubleFormatMoney) ,但我得到stringFormatMoney = $1.032323135

1 个答案:

答案 0 :(得分:2)

每个区域的货币格式规范包括要使用的小数位数,因为这会因货币而异(某些货币使用3dp,例如约旦第纳尔)。因此,NumberFormat.getCurrencyInstance(Locale.US)根据定义包括舍入为2dp。

如果您要使用标准的Double toString加上语言环境的货币符号,则可以执行以下操作:

Currency.getInstance(Locale.US).getSymbol(Locale.US) + doubleFormatMoney

请参见How to get the currency symbol for particular country using locale?