Icu4j сумма прописью выдает недружественное значение десятичной части в миллионах миллиардных
При попытке реализовать сумму прописью на русском языке, с помощью библиотеки icu4j версии 67.1 (а также была попытка на 64.1), преобразование десятичной части числа выдает недружественное к прочтению значение в миллионах миллиардных
Для такого кода:
import com.ibm.icu.text.RuleBasedNumberFormat;
import java.math.BigDecimal;
import java.util.Locale;
class Scratch {
public static void main(String[] args) {
RuleBasedNumberFormat nf = new RuleBasedNumberFormat(
Locale.forLanguageTag("ru"),
RuleBasedNumberFormat.SPELLOUT
);
nf.setMaximumFractionDigits(2);
nf.setRoundingMode(BigDecimal.ROUND_HALF_UP);
System.out.println(nf.format(new BigDecimal("500000.01").setScale(2, BigDecimal.ROUND_HALF_UP)));
}
}
на выводе получается: пятьсот тысяч целых десять миллионов миллиардных
есть ли возможност уточнить как выводить десятичную часть числа так, чтобы десятичная чать была указана в сотых а не миллиардных пятьсот тысяч целых одна сотая
Может быть, есть возможность выдавать сумму прописью как валюту (напр. пятьсот тысяч Рyблей одна Копейка)?
P.S. при передаче данных форматеру, были, также, опробованы типы float и BigDecimal без указания scale. А, также, для numberFormatter устанавливались и не устанавливались nf.setMaximumFractionDigits(2) и nf.setRoundingMode(BigDecimal.ROUND_HALF_UP). Но результат всегда такой-же. Хотя например для числа BigDecimal("5000.01") результат уже ожидаемый: пять тысяч целых одна сотая.
P.P.S. Java 8
Заранее благодарю за помощь.