Я где-то читал, что решающий комитет Java решил, что метод setPrecision
для BigDecimal
будет глупым, поскольку он уже имеет setScale
.
Что еще глупее иметь У пользователей API есть такие методы в своем коде:
private fun getBigDecimalWith16DigitPrecision(value: BigDecimal): BigDecimal {
return when {
value < BigDecimal.ONE -> value.setScale(16, RoundingMode.HALF_UP)
value < BigDecimal(10) -> value.setScale(15, RoundingMode.HALF_UP)
value < BigDecimal(100) -> value.setScale(14, RoundingMode.HALF_UP)
value < BigDecimal(1000) -> value.setScale(13, RoundingMode.HALF_UP)
value < BigDecimal(10000) -> value.setScale(12, RoundingMode.HALF_UP)
else -> value.setScale(11, RoundingMode.HALF_UP)
}
}
, который даже не охватывает все случаи.