Saya membaca bahwa panitia penentu Java memutuskan bahwa metode setPrecision
pada BigDecimal
akan menjadi bodoh, karena sudah memiliki setScale
.
Yang lebih bodoh lagi adalah pengguna API memiliki metode seperti ini dalam kode mereka:
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)
}
}
Yang bahkan tidak mencakup semua kasus.
BigDecimal
memiliki metodesetPrecision
? Tidak mengerti. - person ernest_k   schedule 21.01.2020BigDecimal("33.23").setPrecision(5) == BigDecimal("33.230")
,BigDecimal("33.23").setPrecision(2) == BigDecimal("33")
. - person Alexey Romanov   schedule 21.01.2020