Форматирование BigDecimal

310
31 марта 2018, 16:38

Всем привет! Необходимо отформатировать число BigDecimal следующим образом:

  1. 12 300 отформатировать в 12,3 тыс.
  2. 12 300 000 отформатировать в 12,3 млн.

И так далее. Есть ли какой эффективный способ это сделать средствами java/kotlin?

P.S: Я просто подставляю окончание тыс. или млн. в зависимости от форматируемого числа. P.S.S: Данное форматирование буду использовать в Android проекте.

Answer 1
public class Formatter {
    private static final BigDecimal HUNDRED = new BigDecimal("100");
    private static final BigDecimal THOUSAND = new BigDecimal("1000");
    private static final BigDecimal MILLION = new BigDecimal("1000000");
    private static final BigDecimal BILLION = new BigDecimal("1000000000");
    public static String format(BigDecimal value) {
        if (value.compareTo(BILLION) > 0) {
            return String.format("%.1f млрд.", value.divide(BILLION));
        }
        else if (value.compareTo(MILLION) > 0) {
            return String.format("%.1f млн.", value.divide(MILLION));
        }
        else if (value.compareTo(THOUSAND) > 0) {
            return String.format("%.1f тыс.", value.divide(THOUSAND));
        }
        else if (value.compareTo(HUNDRED) > 0) {
            return String.format("%.1f сот.", value.divide(HUNDRED));
        }
        else {
            return String.format("%.1f", value);
        }
    }
}
READ ALSO
Помогите считать с файла java 8 stream api

Помогите считать с файла java 8 stream api

Здравствуйте, подскажите как считать все слова из этого файла с стихотворением? То есть получить все слова без символов типа #t_es1385_1, цифровых...

200
Межязыковое взаимодействие

Межязыковое взаимодействие

Имеется несколько программ, написанных на разных языках (питон, Ява, плюса)Требуется из одной программы (написанной на яве) последовательно...

206
Обработка ошибки 404 Spring

Обработка ошибки 404 Spring

Есть сервер, построенный на Spring + HibernateНебходимо отловить ошибку 404 когда пользователь стучиться на неправильный адрес (например localhost:8080/tes...

188
Как использовать переменную из метода в главном методе java?

Как использовать переменную из метода в главном методе java?

Доброго времени суток, друзьяЯ только начинаю знакомиться с Java

242