一尘不染

Java Double vs. BigDecimal?

java

我必须计算一些浮点变量,而我的同事建议我使用BigDecimal而不是,double因为这样会更精确。但是我想知道它是什么以及如何最大程度地利用它BigDecimal


阅读 425

收藏
2020-02-28

共1个答案

一尘不染

A BigDecimal是表示数字的精确方法。A Double具有一定的精度。由于幅值之差太大,求和时使用不同倍数(例如d1=1000.0d2=0.001)的双精度可能会导致0.001它们一起下降。有了BigDecimal这不会发生。

的缺点BigDecimal是,它是较慢的,和它有点更难以程序算法的方式(由于+ - *和/不被过载)。

如果你要花钱,或必须精打细算,请使用BigDecimal。否则Doubles往往就足够好了。

我确实建议阅读javadoc,BigDecimal因为它们的解释要比我在这里做的要好:)

2020-02-28