Java中如何选择最佳RoundingMode对BigDecimal金额保留两位小数?
关于BigDecimal金额计算的舍入模式选择问题
我有一个BigDecimal类型的amount变量,以及另一个BigDecimal类型的tax变量,需要执行以下计算:
amountWithoutTax = amount - tax
amount和tax按预期应为YYYY.XX格式(即精度为2),因此amountWithoutTax也应保留两位精度。但在极少数情况下,amount或tax的精度可能达到3位或更高,导致amountWithoutTax的精度也超过两位。
由于金额不存在分以下的货币单位(如$45.134无实际意义),目前可选的RoundingMode类选项有:
- CEILING
- DOWN
- FLOOR
- HALF_DOWN
- HALF_EVEN
- HALF_UP
- UP
目前我们随机选择了CEILING模式直接向上舍入,想知道官方/正确的处理方式是什么?
内容的提问来源于stack exchange,提问作者user1068636
相关产品推荐
相关产品推荐

