Java中BigDecimal算出来的结果不对?

这段代码为什么输出的872?

public static void main(String[] args) {

BigDecimal currentInventoryNumber = BigDecimal.valueOf(872.000);

BigDecimal convertedNumber = BigDecimal.valueOf(0.200);

System.out.println(currentInventoryNumber.subtract(convertedNumber, new MathContext(3)));

}


回答:

第二个参数new MathContext(3)表示精度为小数点后三位。
因为currentInventoryNumber的值为872.000,而convertedNumber的值为0.200,所以它们的差值为871.800。使用了MathContext(3)会将结果四舍五入到小数点后三位,也就是872.000。


回答:

你可以不指定MathContext,让BigDecimal用默认的MathContext

public static void main(String[] args) {

BigDecimal currentInventoryNumber = BigDecimal.valueOf(872.000);

BigDecimal convertedNumber = BigDecimal.valueOf(0.200);

System.out.println(currentInventoryNumber.subtract(convertedNumber));

}

以上是 Java中BigDecimal算出来的结果不对? 的全部内容, 来源链接: utcz.com/p/945341.html

回到顶部