BigDecimal setScale被忽略了吗?

Aft*_*ess 1 java bigdecimal

    setValue(BigDecimal value)
    {
      this.value=value;
      this.value.setScale(8, RoundingMode.HALF_DOWN);
    }

    BigDecimal getValue()
    {
       return value;
    }

   setValue(0.0314159*Math.random());
Run Code Online (Sandbox Code Playgroud)

我不知道为什么,但是getValue()生成的BigDecimals的小数位数比8小很多.

我究竟做错了什么 ?

Sca*_*bat 5

如果您阅读了javadoc,您将看到setScale返回一个新的BigDecimal

  • 更重要的是,所有BigDecimal方法都会做同样的事情,即改变原始对象.BigDecimals是不可变的,永远不会改变. (3认同)