Java: форматирование денежных сумм с использованием второстепенных символов валюты

Java предоставляет хороший способ форматирования валют с использованием основных символов в зависимости от заданной локали. Например, если данной валютой является доллар США, то вы можете достичь $0.35 или же USD0.35 для США и Великобритании соответственно. Это действительно хорошо.

Тем не менее, в некоторых случаях необходимо форматировать денежные суммы в другом, я бы сказал, более удобном стиле с использованием второстепенных символов валюты. Например, 35¢ или же 35c вместо приведенных выше примеров. Википедия также говорит:

Центовые суммы от 1 до 99 центов могут быть представлены одной или двумя цифрами, за которыми следует соответствующее сокращение (2¢, 5¢, 75¢, 99¢)

Тем не менее, я не могу найти способ отформатировать денежные суммы в этом стиле, используя JDK. Я уже пытался играть с DecimalFormatSymbols, но это позволяет настроить только основной символ валюты, поэтому DecimalFormat по-прежнему использует оригинальный формат, давая что-то вроде ¢35 что не хорошо. Кроме того, строка нестандартного формата для исправления порядка может не совпадать с языковым стандартом / языком / страной (между пробелами? Префикс или нотация суффикса?). Joda Money и его MoneyFormatter, похоже, также не имеют этой функции.

Есть ли хороший способ форматировать денежные суммы, используя второстепенные символы валюты? Заранее спасибо.

PS Я не уверен, хорошо ли здесь подходят слова "мажор" и "минор".

1 ответ

Я искренне считаю, что лучшее, что нужно сделать здесь, если вам действительно нужны второстепенные валюты, - это выполнить собственный анализ информации в строки. При необходимости вы можете даже создать свой собственный класс денег с помощью различных методов, которые выводят строки или что угодно! Вы должны будете оценить свою ситуацию и определить, действительно ли она того стоит.:)

Другие вопросы по тегам