我在编码中使用 Math.Context。现在的问题是 Math.Context 正在计算小数点后的所有内容。我想为 Math.Context 定义 8 的比例(表示小数点后 8 位)。请注意,我不是在寻找精确度。我知道如何定义精度。我需要规模。
这是我的 Math.Context 代码行:
answer = firstvalue.multiply(secondvalue).divide(new BigDecimal("1240"), MathContext.DECIMAL32);
我在编码中使用 Math.Context。现在的问题是 Math.Context 正在计算小数点后的所有内容。我想为 Math.Context 定义 8 的比例(表示小数点后 8 位)。请注意,我不是在寻找精确度。我知道如何定义精度。我需要规模。
这是我的 Math.Context 代码行:
answer = firstvalue.multiply(secondvalue).divide(new BigDecimal("1240"), MathContext.DECIMAL32);
MathContext 类的构造函数或辅助方法中没有参数来设置比例。您可以尝试 BigDecimal ,其中比例可以指定为
在divide参数中,参数可以按如下方式传递,
BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)
IE
firstvalue.multiply(secondvalue).divide(new BigDecimal("1240"), 4, RoundingMode.FLOOR);
参考 MathContext javadoc:https ://docs.oracle.com/javase/7/docs/api/java/math/MathContext.html
你可以做你所要求的。我向你展示了如何,但在此之前我想告诉你,你必须setScale()
继续BigDecimal
。在这种情况下,我假设 answer 变量是BigDecimal
. 这是你的答案
answer = firstvalue.multiply(secondvalue).divide(new BigDecimal("1240"), MathContext.DECIMAL32);
answer = answer.setScale(5, RoundingMode.HALF_EVEN);
// YOU CAN SET YOUR OWN DESIRED SCALE OR ROUNDINGMODE