0

私のアプリケーションでは、数値を小数点以下 2 桁に丸める必要があります。たとえば、xy、 、 のz4つのフィールドを持つドキュメントがあります。Amountと:

Amount = x*y/z;

これが私の問題です:

TotalAmount: x(100)*y(41.30)/z(1000) = 4.13.

SubAmount1: x(70)*y(41.30)/z(1000) = 2.89 [2.891 before rounding]

SubAmount2: x(10)*y(41.30)/z(1000) = 0.41 [0.413 before rounding]

SubAmount3: x(10)*y(41.30)/z(1000) = 0.41 [0.413 before rounding]

SubAmount4: x(10)*y(41.30)/z(1000) = 0.41 [0.413 before rounding]

現在、すべての合計は'SubAmounts'と等しくありません'TotalAmount'。四捨五入0.01により差が出ます。

この問題を解決するにはどうすればよいですか? あなたの提案を共有してください。

注:既存のデータがあり、他の計算は「金額」の丸められた値に依存しているため、小数点以下の桁数「2.891」を完全に保存することはできません。

4

1 に答える 1

0

完全な (丸められていない) SubAmount を変数に保存できます (たとえば、S1 には 2.891、S2 には 0.413、S3 には 0.413、S4 には 0.413 が含まれます)。文書に入力するには、SubAmount1 として S1 の丸められた値、SubAmount2 として S2 の丸められた値、SubAmount3 として S3 の丸められた値、および SubAmount4 として S4 の丸められた値を入力します。TotalAmount の値は、合計 (S1+S2+S3+S4) を四捨五入して得られます。お役に立てば幸いです。

于 2013-07-16T13:51:38.413 に答える