我必须计算一些浮点变量,我的同事建议我使用BigDecimal而不是double,因为它更精确。但我想知道它是什么,以及如何充分利用BigDecimal
BigDecimal是表示数字的精确方法。双精度具有一定的精度。使用不同量级的双倍(例如d1=1000.0和d2=0.001)可能会导致0.001在求和时一起下降,因为量级差异太大。如果使用BigDecimal,则不会发生这种情况
BigDecimal的缺点是速度较慢,而且这样编写算法有点困难(因为+-*和/没有过载)
如果你在处理金钱问题,或者必须精确,请使用BigDecimal。否则,双倍就足够了
我建议您阅读javadoc属于BigDecimal,因为它们比我在这里解释得更好:)