日期:2014-05-17  浏览次数:20783 次

float 字段 赋值后 小数位丢失
t3的QTY是float类型

按以下方式赋值后,小数位丢失
update #t set LABELIDQTY=t3.QTY    
from #t3  t3 , #t t    
where t3.PRONUM=t.PRONUM

用以下方式转换,还是不行
update #t set LABELIDQTY=CONVERT(DECIMAL(18,2),t3.QTY) 
from #t3  t3 , #t t    
where t3.PRONUM=t.PRONUM

------解决方案--------------------
float与real是近似值,要用deciaml或者numeric这类精确值作为类型

你先查询一下什么情况,是不是LABELIDQTY字段也是float类型啊
select CONVERT(DECIMAL(18,2),t3.QTY) 
from #t3  t3 , #t t    
where t3.PRONUM=t.PRONUM 
------解决方案--------------------
SELECT LTRIM(QTY)+0,CONVERT(NUMERIC(19,2),T3.QTY),CONVERT(NUMERIC(19,6),T3.QTY)
FROM #T3
都不行吗?