gpt4 book ai didi

BigDecimal 和计算的 Java 舍入问题

转载 作者:行者123 更新时间:2023-11-30 09:04:58 25 4
gpt4 key购买 nike

我有一个由 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了。但它不代表数据库中的实际值(.553 接近于 .55,但如果我在四舍五入后将它加起来,结果将是 .56,.553 不接近于 .56)。

有没有办法解决这个问题?我环顾四周想看看试算平衡报告是如何制作的,但我找不到任何合适的解决方案?

编辑 1

我在金融系统中看到过这样的试算表,他们是在四舍五入后计算的吗?我一直将此与试算表报告进行比较,因为该报告与试算表类似。

编辑 2
可以对四舍五入的值进行计算吗?我了解到不建议对四舍五入的值进行计算,因为原始值会被丢弃。

编辑 3基于@MarcioB、@user3679868 和@JoopEggen 决定根据四舍五入的值进行计算。差异 .047 (.56 - .553) 显然已注销(审计标准)!

最佳答案

因为您要对每个帐户进行四舍五入,如果您希望总计等于帐户的总和,则必须使用帐户的四舍五入值来计算总数。

关于BigDecimal 和计算的 Java 舍入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25014727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com