我想使用fire()
将NumberFormat
转换为Double
。我目前使用的是基于货币语言环境的String
,但这会将NumberFormat
舍入到小数点后两位。我如何才能不对货币进行四舍五入以使其包含小数便士呢?
如果我有
Double
然后我们应该有val doubleFormatMoney = 1.032323135
val format = NumberFormat.getCurrencyInstance(Locale.US)
val stringFormatMoney = format.format(doubleFormatMoney)
,但我得到stringFormatMoney = $1.032323135
答案 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?