侧边栏壁纸
博主头像
王小木博主等级

这是很长,很好的一生

  • 累计撰写 126 篇文章
  • 累计创建 39 个标签
  • 累计收到 3 条评论

目 录CONTENT

文章目录

BigDecimal 实例化后时BigDecimal.ROUND_DOWN或是RoundingMode.DOWN 值会变小

王小木
2021-08-19 / 0 评论 / 0 点赞 / 295 阅读 / 355 字

BigDecimal 在实例化时 值为double 类型,实例化的结果会变小,例如

BigDecimal bigDecimal = new BigDecimal(0.15).setScale(2, BigDecimal.ROUND_DOWN)

实际输出的结果会是 0.14,但是如果实例化 1.151,结果就是0.15,这是因为double类型精度缺失造成的
解决办法,实例化用字符串

BigDecimal bigDecimal = new BigDecimal("0.15").setScale(2, BigDecimal.ROUND_DOWN);

需要double可以类型的话可以使用bigDecimal.doubleValue()转换。

0

评论区