Как я могу заставить NumberFormat использовать валюту, но с дробными центами / копейками? - PullRequest
0 голосов
/ 25 июня 2018

Я хотел бы использовать NumberFormat для преобразования Double в String.В настоящее время я использую NumberFormat на основе языкового стандарта, но это округляет Double до 2 десятичных знаков.Как я мог заставить ее не округлять валюту, чтобы она включала дробные пенни?

Так что, если у меня есть

val doubleFormatMoney = 1.032323135

val format = NumberFormat.getCurrencyInstance(Locale.US)

val stringFormatMoney = format.format(doubleFormatMoney)

Тогда у нас должно быть stringFormatMoney = $1.032323135, но вместо этого я получаю stringFormatMoney = $1.03

1 Ответ

0 голосов
/ 25 июня 2018

Спецификация формата валюты для локали включает в себя количество используемых десятичных знаков, поскольку оно зависит от валюты (некоторые валюты используют 3dp, например, иорданский динар).Поэтому NumberFormat.getCurrencyInstance(Locale.US) включает округление до 2dp по определению.

Если вы хотите использовать стандарт Double toString плюс символ валюты локали, вы можете сделать:

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

См. Как получить символ валюты для конкретной страны, используя локаль?

...