Java 大十进制标度及其计算

Java 大十进制标度及其计算,java,bigdecimal,Java,Bigdecimal,我使用BigDecimal进行计算。 对于计算结果,我会: result.setScale(4, RoundingMode.HALF_UP); 当使用BigDecimal的.divide方法时,需要一个刻度和四舍五入,所以现在我这样做: BigDecimal result = bigDecimal1.divide(bigDecimal2, 10, RoundingMode.HALF_UP); 所以我只是用一个足够大的尺度来确保计算是正确的。 但我不确定这是否是用BigDecimal进行计算的

我使用
BigDecimal
进行计算。 对于计算结果,我会:

result.setScale(4, RoundingMode.HALF_UP);
当使用
BigDecimal
.divide
方法时,需要一个刻度和四舍五入,所以现在我这样做:

BigDecimal result = bigDecimal1.divide(bigDecimal2, 10, RoundingMode.HALF_UP);
所以我只是用一个足够大的尺度来确保计算是正确的。 但我不确定这是否是用BigDecimal进行计算的正确方法,我对此表示怀疑

因此,我们非常感谢您的指点。

您做得对


你可以找到。

< P>你需要清楚地知道你认为是正确的答案。如果误差小于1e-10,是否可以,或者是否需要为1e-20或1e-30等。对于许多除法结果,您无法获得准确的结果,因为结果表示为十进制

顺便说一句:如果您需要少于15位有效数字,这就是使用
双精度
的精度,您可能不需要使用bigdecime


e、 g.1/3是否被认为是0.333或0.333,但如果我做对了,它永远不会完全正确(即无限长)

@jarnbjo?如果不是,那我该怎么办。。。您向我们提供了哪些功能需求,让我们可以决定您的操作是否正确?