Всем привет! Необходимо отформатировать число BigDecimal следующим образом:
И так далее. Есть ли какой эффективный способ это сделать средствами java/kotlin?
P.S: Я просто подставляю окончание тыс. или млн. в зависимости от форматируемого числа. P.S.S: Данное форматирование буду использовать в Android проекте.
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);
}
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей