从DT_Decimal转换为DT_Str时,派生列会从我的结果中取出小数。
例: -0.1250返回-0.125 -2.0000返回-2
有没有办法让零保持最后一个字符串,总是有四位小数?
这是我的十进制值计算的派生列:
(DT_DECIMAL,4)ROUND((DT_Decimal,4)[Column 1] / (DT_DECIMAL,4)@[User::rate],2)
这是我的字符串表达式,将它带到右对齐的字符串,包含11个字符:
RIGHT(REPLICATE(" ",11) + TRIM((DT_STR,11,1252)
(DT_DECIMAL,4)ROUND((DT_Decimal,4)[Column 1] / (DT_DECIMAL,4)@[User::rate],2)
),11)
我正在使用SSIS 2008。
提前致谢。 弗朗西斯
答案 0 :(得分:1)
测试“。”的位置怎么样? 如果比追加“0000”更好,并采取字符串的左侧部分。 Left函数的length参数应该是“。”的位置。加4
如果为零,则追加“.0000”
使用师时请小心。如果除以零,则会出现错误。 我通常除以NULLIF(Rate,0),如果我尝试除以零,则得到NULL。
答案 1 :(得分:0)
选项:
(DT_DECIMAL, 4)ROUND(User::rate,4) - removes extra zeroes
(DT_NUMERIC,18,4)ROUND(User::rate,4) - keeps zeroes