对BigDecimal的结果感到困惑

时间:2019-06-02 20:26:09

标签: java bigdecimal

BigDecimal(9105.0).div(BigDecimal(100.toDouble())) = 91.0而不是91.05。如何保留小数位数的精度?

1 个答案:

答案 0 :(得分:3)

您使用.div方法而不是.divide方法

.div的kotlin实现是:

@kotlin.internal.InlineOnly
public inline operator fun BigDecimal.div(other: BigDecimal): BigDecimal = this.divide(other, RoundingMode.HALF_EVEN)

如您所见,会自动激活RoundingMode