数値で構成されるデータセットがありBigDecimal
ます。レポートで紹介したいと思います。次の形式でレポートを生成することができました。これは、会計における試算表に似ています。そうではありません!表のデータには、値の小数点以下 4 桁があります。ただし、レポートでは、小数点以下 2 桁に丸める必要があります。レポートも正確でなければならないため、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
簿記に使用されるため、また、このケースには財務も含まれるため、丸めモードを使用しています。
値を四捨五入した後、合計できます。レポートの計算は問題ありません。しかし、それはデータベースにある実際の値を表していません (.553 は .55 に近いですが、四捨五入後に合計すると .56 になり、.553 は .56 に近くありません)。
とにかくこの問題を克服する方法はありますか? 試算表の作成方法を調べたのですが、適切な解決策が見つかりませんでしたか?
編集1
このような金融システムで試算表レポートを見たことがありますが、四捨五入後に計算を行うのですか? このレポートは 1 つのレポートに似ているため、これを試算表レポートと比較し続けます。
EDIT 2
丸められた値で計算してもよろしいですか? 元の値が破棄されるため、丸められた値で計算を行うことはお勧めできません。
EDIT 3 @ MarcioB、@ user3679868、および @ JoopEggen に基づいて、丸められた値に基づいて計算を行うことにしました。差 .047 (.56 - .553) は明らかに償却されます (監査基準)!