为什么bd = bd.setScale(3, BigDecimal.ROUND_HALF_UP); bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);这两行代码对99.999处理的时候,输出的是100.0而不是100.00
时间: 2024-01-19 16:51:05 浏览: 80
bigdecimal转integer.docx
这是因为在第一行代码中,你将BigDecimal对象bd的小数位数设置为3,并使用四舍五入模式进行舍入。此时,bd的值被舍入为了100.000。
在第二行代码中,你再次将BigDecimal对象bd的小数位数设置为2,并使用四舍五入模式进行舍入。但是,此时bd的值已经被舍入为100.000,且小数位数为3,因此再次舍入时只会保留两位小数,即变成了100.00。
如果要将99.999舍入为100.00,可以直接使用以下代码:
```
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
```
阅读全文