双十进制与大十进制?
2022-08-31 04:43:22
我必须计算一些浮点变量,我的同事建议我使用而不是因为它会更精确。但我想知道它是什么以及如何充分利用?BigDecimal
double
BigDecimal
我必须计算一些浮点变量,我的同事建议我使用而不是因为它会更精确。但我想知道它是什么以及如何充分利用?BigDecimal
double
BigDecimal
A 是表示数字的精确方式。A 具有一定的精度。使用各种大小的双精度(例如和)可能会导致在求和时完全丢弃,因为大小差异如此之大。这样就不会发生。BigDecimal
Double
d1=1000.0
d2=0.001
0.001
BigDecimal
缺点是它的速度较慢,并且以这种方式对算法进行编程有点困难(由于并且没有过载)。BigDecimal
+
-
*
/
如果您正在与金钱打交道,或者精度是必须的,请使用.否则往往足够好。BigDecimal
Doubles
我确实建议阅读javadoc,因为它们确实比我在这里更好地解释了事情:)BigDecimal
我的英语不好,所以我只在这里写一个简单的例子。
double a = 0.02;
double b = 0.03;
double c = b - a;
System.out.println(c);
BigDecimal _a = new BigDecimal("0.02");
BigDecimal _b = new BigDecimal("0.03");
BigDecimal _c = _b.subtract(_a);
System.out.println(_c);
程序输出:
0.009999999999999998
0.01
还有人想使用双倍吗?;)