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

作者站长头像
站长
· 阅读数 5

这段代码为什么输出的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)));
    }
回复
1个回答
avatar
test
2024-06-27

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

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容