2

数値で構成されるデータセットがあり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) は明らかに償却されます (監査基準)!

4

2 に答える 2

1

あるテーブルで丸めを使用し、別のテーブルでは使用しない場合、丸め方法に関係なく、常にこの問題が発生します。

ここでは、微積分に完全な数値を使用し、レポートでは切り捨てます。

于 2014-07-29T12:12:30.917 に答える