SSIS の派生列での計算にいくつかの問題があります。
次の計算を実行しようとしています-
4206 + ((4206 * 4206) * 0.000150000000000) + ((4206 * 4206 * 4206) * 0.000000010000000)
次のエラーが表示されます -
**The magnitude of the result of a binary operation overflows the maximum size for result data type**
この計算を C# Web アプリケーションに貼り付けると、同様の問題が発生しました -
**The operation overflows at compile time in checked mode**
このセクションについて不平を言っていました - 4206 * 4206 * 4206
。Web アプリケーションでも変更することで解決できますが4206 * 4206 * 4206L
、SSIS パッケージでこれを解決する方法がわかりません。
以前にこの問題に遭遇した人はいますか? どんなアイデアでも大歓迎です。
前もって感謝します。
編集
オーバーフロー例外は解決されましたが、古い計算と新しい計算ではわずかに異なる値が返されます。たとえば、入力値として 4206 ではなく 415 が使用されています -
古い計算値 = 419.014582 新しい計算値 = 419.042100
正確な計算は -
年 -InputValue + ((InputValue * InputValue) * (DT_DECIMAL,20)@[User::SquaredValue]) + ((InputValue * InputValue * InputValue) * (DT_DECIMAL,20)@[User::CubicValue])
新しい -InputValue + (((DT_DECIMAL,20)@[User::SquaredValue] * InputValue * InputValue)) + (((DT_DECIMAL,20)@[User::CubicValue] * InputValue * InputValue * InputValue))
編集
計算のわずかな違いに関する 2 番目の問題は、新しい質問として開かれました。