-1

我在编码中使用 Math.Context。现在的问题是 Math.Context 正在计算小数点后的所有内容。我想为 Math.Context 定义 8 的比例(表示小数点后 8 位)。请注意,我不是在寻找精确度。我知道如何定义精度。我需要规模。

这是我的 Math.Context 代码行:

answer =  firstvalue.multiply(secondvalue).divide(new BigDecimal("1240"), MathContext.DECIMAL32);
4

2 回答 2

0

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

于 2020-07-26T09:49:06.283 回答
0

你可以做你所要求的。我向你展示了如何,但在此之前我想告诉你,你必须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
于 2020-07-26T10:53:43.247 回答