我有一个由BigDecimal
数字组成的数据集。我想在报告中介绍这一点。我已设法生成具有以下格式的报告。这有点类似于会计中的试算表。但事实并非如此!表中数据的值有 4 个小数点。但在报告中应四舍五入到小数点后两位。报告也必须准确,因此使用BigDecimal
.
+--------+---------+--------+
|Account | Debits | Credits|
+--------+---------+--------+
|A | 0.2760 | 0.1630 |
+--------+---------+--------+
|B | 0.2770 | 0.2640 |
+--------+---------+--------+
|Total | 0.5530 | 0.4270 |
+--------+---------+--------+
真正的问题是在显示总数时。四舍五入后,总数不会正确加起来。
+--------+---------+--------+
|Account | Debits | Credits|
+--------+---------+--------+
|A | 0.28 | 0.16 |
+--------+---------+--------+
|B | 0.28 | 0.26 |
+--------+---------+--------+
|Total | 0.55 | 0.43 |
+--------+---------+--------+
我使用HALF_EVEN
舍入模式是因为它用于簿记,也因为这种情况也涉及财务。
我可以在四舍五入后将其相加。那么报表计算就OK了。但它不会代表数据库中的实际值(0.553 接近 0.55,但如果我在四舍五入后将其相加,结果将是 0.56,0.553 不接近 0.56)。
有没有办法克服这个问题?我环顾四周看看如何制作试算表,但我找不到任何合适的解决方案?
编辑 1
我在这样的金融系统中看到过试算表,他们是否在四舍五入后进行计算?我一直将其与试算表报告进行比较,因为该报告与一份报告相似。
编辑 2
可以对四舍五入的值进行计算吗?我了解到,不建议对舍入值进行计算,因为原始值会被丢弃。
编辑 3 基于@MarcioB、@user3679868 和@JoopEggen 决定根据四舍五入的值进行计算。差异 .047 (.56 - .553) 显然已注销(审计标准)!