在庫データベースに2つの値があります。1つはQtyOnHand(float)で、もう1つはそのアイテムのすべての在庫トランザクションの計算です(SUM(TransQty)
transQtyもfloatであると考えてください)。問題は、不明な理由で時間の経過とともに、これらの値の一部が同期しなくなることです。だから今、私はそれらをきれいにしようとしています。
基本的に、私はQtyOnHand(正確であると宣言しています)を取得し、そこからトランザクションの合計を差し引きます。次に、差異のトランザクションに修正エントリを作成します。これは、「10進数のほこり」がたくさんある数値に到達するまではうまく機能します。0
また、実際の値がに近い場合でも、floatが表示されるよう0.0000000000000000237
です。
これが私が修正するのに苦労しているいくつかのデータです。
科学的記数法の項目は私に問題を与えています。アイテムPLXL-105-Hを示す-18、-18を示す行でさえ、1%の不一致の範囲外の値のみを返すため、正確に表示されません。私は完全にTSQLで作業してきましたが、C#プログラムからの値を操作するのに役立ちますか?
だから、ここに私の質問があります:これらの数字をどのように扱うべきですか?それらをDECIMAL(38,38)に変換しようとしましたが、算術オーバーフローが発生します。違いを表す正確な値を取得し、その値を使用してバランスを取る必要があります。