我必须计算一些浮点变量,而我的同事建议我使用BigDecimal而不是,double因为这样会更精确。但是我想知道它是什么以及如何最大程度地利用它BigDecimal?
BigDecimal
double
A BigDecimal是表示数字的精确方法。A Double具有一定的精度。由于幅值之差太大,求和时使用不同倍数(例如d1=1000.0和d2=0.001)的双精度可能会导致0.001它们一起下降。有了BigDecimal这不会发生。
A BigDecimal
Double
d1=1000.0
d2=0.001
0.001
的缺点BigDecimal是,它是较慢的,和它有点更难以程序算法的方式(由于+ - *和/不被过载)。
+ - *和/
如果你要花钱,或必须精打细算,请使用BigDecimal。否则Doubles往往就足够好了。
Doubles
我确实建议阅读javadoc,BigDecimal因为它们的解释要比我在这里做的要好:)
javadoc,BigDecimal