BigDecimal规模和计算

时间:2011-12-16 12:37:03

标签: java bigdecimal

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

result.setScale(4, RoundingMode.HALF_UP);

当使用.divide BigDecimal方法时,需要缩放和舍入,所以现在我这样做:

BigDecimal result = bigDecimal1.divide(bigDecimal2, 10, RoundingMode.HALF_UP);

所以我只是使用足够大的比例来确保计算是正确的。 但我不确定这是否是使用BigDecimal进行计算的正确方法,我对此有疑问......

所以任何指针都表示赞赏。

2 个答案:

答案 0 :(得分:2)

您需要清楚地了解您认为正确的答案。如果误差小于1e-10,那么是好还是需要1e-20或1e-30等。对于许多除法结果,你无法得到精确的结果,因为结果表示为小数。

BTW:如果您需要少于15位有效数字,这是使用double的准确性,您可能不需要使用BigDecimal。

e.g。是1/3被认为是0.333333333或0.333333333333333333但它永远不会完全正确(即无限长)

答案 1 :(得分:1)

你做对了。

您可以在JavaPractices some examples with BigDecimal找到。