2

私はここ数日 ADempiere に取り組んでいますが、何かについて混乱しています。

データベース テーブルに、Other_Number という名前の新しい列を参照型 Quantity で作成しました。最大長は 20 です。

私の Java ソースでは、BigDecimal を使用しました。

ここで、Other_Number フィールドに正確に 20 桁を入力しようとするたびに、最後の 4 桁が丸められます。12345678901234567891 と入力すると、保存しようとすると 12345678901234567000 になります。

それ以外。データベース (PSQL) に保存されるすべてのレコードには、".000000000000" (12 個のゼロ) が追加されます。

ここで、20 桁を入力したときに最後の 4 桁が丸められないようにする必要があります。

また、その「.000000000000」を取り除く必要があります

なぜこれが起こっているのか教えてください。

4

4 に答える 4

2

財務 ERP ソフトウェアとしての ADempiere は、財務金額を処理する方法において重要です。データベースでは、正確な BigDecimal 値がデータの整合性を維持する必要があります。精度と丸めは、コードで可能な限り完璧に行われています。iDempiere と Openbravo もフォークした、確立された有名なプロジェクト Compiere ERP の一部であり、そのような財務量管理はすでに明確に定義され、解決されています。おそらく、適切なウィンドウで精度を設定する必要がありますhttp://wiki.idempiere.org/en/Currency_%28Window_ID-115%29 ここに画像の説明を入力

于 2016-01-02T03:01:59.197 に答える
1

Adempiere Java コードでは、「setScale」メソッドを使用して値を丸めます

例:

    BigDecimal len= value           
    len= len.setScale(2,4);
    setLength(len);
于 2013-11-22T07:40:15.753 に答える
1

Adempiere は、最大 14(+5) 桁 (兆) の金額/取引量 (米ドル通貨) をサポートします。

What currency you are using, is it possible to use this much amount/quantity in ERP system ?

ロジックを変更したい場合は、 DispalyType.javaクラスのgetNumberFormatメソッドでロジックを変更できます。

事業シナリオはどのようなものでしたか?

于 2013-11-20T09:01:09.937 に答える