假设我有一个 BigDecimal
amount
和另一个 BigDecimal tax
。
我想进行以下计算:
amountWithoutTax = amount - tax
amount
和tax
应该采用格式YYYY.XX
(即精度为2)。所以这意味着 amountWithoutTax
也应该继承 2 的精度。
但是,在“不太可能”的情况下,amount
或
tax
具有3或更高的精度,amountWithoutTax
也将继承3或更高的精度。从四舍五入的角度来看,处理这种情况的适当方法是什么?就金钱而言,45.134 美元没有任何意义,因为没有任何硬币的价值低于 1 美分。
以下是我(我认为)使用 RoundingMode 类的选项:
询问你的团队,询问有财务决策权的利益相关者。不同的公司和部门对于舍入/截断有不同的政策。
45.134 美元没有意义,因为没有硬币
不正确。
在很多业务场景中,美元财务金额计算到小数点后第三位或第四位。事实上,在加油站您要支付每加仑 4.129 美元,比大标牌上的价格上涨了近一分钱(请阅读加油站的细则)。