1

現在、VisualStudio2005でSQLServer2005を使用しています。MicrosoftおよびSAPユーザーのライセンス料(ユーロ)をQTRで割ったデータウェアハウスを構築しました。

ユーロのコストを米ドルに変換する計算を作成しました。個々の四半期は正しく計算されていますが、SUMは、リストされている3つのメジャーからの合計とQuaterの合計を計算しており、不正確なSUMを作成しています。

すべてのテーブルデータが正しいことを確認し、エラーを計算まで追跡しました。SUMを修正するために何が欠けているのかわからず、QTRのフィールドのみを合計し、ファクトテーブルと表示可能な合計のすべてのリストされたメジャーを合計するわけではありません。

あなたが提供できるどんな助けにも感謝します。

4

1 に答える 1

1

エラーのタイプが1.01+1.02 + 1.03 = 3.0600001の場合、浮動小数点計算の予想される動作です。これは、多くの有限分数を2進数の有限ビット数で表すことができないという事実によるものです。ちょうど1/3を10進数の有限桁数で表すことができないのと同じです。

(グーグルスプレッドシートの例:507.05-511.44は-4.38999を生成します)

これは、多くの言語で変数タイプ「通貨」を使用することで回避できます。これは、すべての値をセントの整数で内部的に表現し、結果を表示するときにのみ小数点を配置することでシミュレートできます。

于 2012-12-12T15:37:27.857 に答える