首页 > 解决方案 > 我们如何设置 BigDecimal 的分辨率,使其只能采用指定增量的值?

问题描述

是否可以将 BigDecimal 的分辨率设置为例如 10 –9,因此值必须是该值的倍数,不能少。

或者在通过舍入执行算术运算时是否必须这样做?

标签: javabigdecimal

解决方案


这就是我一直在寻找的

    BigDecimal val1 = new BigDecimal("1.00876876989",MathContext.DECIMAL128);

    // setting the scale to 10 sets the limits resolution, but the precision provided by the MathContext must be big enough to support this minimum resolution.
    // The rounding type doesn't matter but must be provided.

    val1 = val1.setScale(10, BigDecimal.ROUND_DOWN);

推荐阅读