我尝试使用multiply
方法将两个BigDecimal
值相乘,代码如下:
BigDecimal dur = BigDecimal.valueOf(60/1.1);
BigDecimal bal = BigDecimal.valueOf(1.1);
BigDecimal ans = dur.multiply(bal);
System.out.println("Ans:"+ans);
我期望的答案是60
,但实际得到的是:
Ans:59.999999999999994
为什么会出现这个问题,我们该如何解决?
1.0 / 3 * 3
,当使用double
时结果为1.0
,但使用BigDecimal
时需要额外进行舍入。 - Peter Lawrey