我使用BigDecimal
进行计算。
对于计算结果,我做了:
result.setScale(4, RoundingMode.HALF_UP);
当使用.divide
BigDecimal
方法时,需要缩放和舍入,所以现在我这样做:
BigDecimal result = bigDecimal1.divide(bigDecimal2, 10, RoundingMode.HALF_UP);
所以我只是使用足够大的比例来确保计算是正确的。 但我不确定这是否是使用BigDecimal进行计算的正确方法,我对此有疑问......
所以任何指针都表示赞赏。
答案 0 :(得分:2)
您需要清楚地了解您认为正确的答案。如果误差小于1e-10,那么是好还是需要1e-20或1e-30等。对于许多除法结果,你无法得到精确的结果,因为结果表示为小数。
BTW:如果您需要少于15位有效数字,这是使用double
的准确性,您可能不需要使用BigDecimal。
e.g。是1/3被认为是0.333333333或0.333333333333333333但它永远不会完全正确(即无限长)
答案 1 :(得分:1)
你做对了。