我在 SSIS 中的派生列计算没有返回正确的值时遇到问题。为了提供一些背景知识,由于溢出问题(已解决),我不得不更改计算的格式,请参见此处 - SSIS - Derived Column Calculation Error
现在,新旧计算在 SSIS 中返回不同的值,即使它们在数学上是相同的,并且在 .net、excel 和 SQL 中执行时返回相同的值。
在.Net -
decimal test1 = Convert.ToDecimal((415 * 415 * 415) * 0.000000030940000);
decimal test2 = Convert.ToDecimal((0.000000030940000 * 415 * 415 * 415));
两者都返回 2.2113862225
在 SSIS -
test1 = ((415 * 415 * 415) * 0.000000030940000)
test2 = (0.000000030940000 * 415 * 415 * 415)
返回不同的值(test1 = 2.2113862225 和 test2 = 2.211535)
有趣的是,SSIS 将 test1 视为数字 (38,6),将 test2 视为数字 (27,15)....
有没有人遇到过这个问题?
我真的不想重新考虑整个包以使用 .net 计算,但这将是我最后的解决方案。