我有数据,我正试图准确,精确地操纵不断增加的分母。
请假设分子总是有小数。
我在docs中看到divide(BigDecimal divisor)
实际上会缩小看起来很奇怪的比例因为我理解“比例”的使用,小数点后的位数,它应该在分割时增加
我还在docs中看到multiply(BigDecimal multiplicand)
增加了比例。根据我对比例的理解,这也没有意义,因为两个乘法数字需要超过小数点的数字的可能性下降。
文档中存在这些拼写错误吗?
如果没有,我对比例的理解不正确吗?
如果没有,如何通过增加小数点后位数的不断增加的分母来保持精度?
答案 0 :(得分:2)
这实际上只是scientific notation。正如文档中所述,BigDecimal
的价值是:
unscaledValue × 10^(-scale)
因此,将两个BigDecimal
相乘可相当于将unscaledValue
乘以scale
s:
a * b
== (uA * 10^-sA) * (uB * 10^-sB)
== (uA * uB) * 10^-(sA + sB)