Create Table #tmp(
Ration Decimal(28,10) null
,convertfirst Decimal(28,10) null
,scraprate Decimal(28,10) null
)
Insert Into #tmp (Ration ,convertfirst ,scraprate ) values (0.0033 , 1000 , 0 )
select Ration/ convertfirst * ( 1 + ISNULL( scraprate , 0 ) )
from #tmp
返回是 0.000003
正确的应该是:0.0000033
哪位高手清楚原因,或上面公式应该怎么写才可以
------解决方案--------------------
http://blog.csdn.net/coleling/article/details/6406904
参考这篇文章
你可以看一下乘法时的结果精度是如何确定的
解决方法,如果scraprate Decimal(28,10)可以不需要这么高的精度可以降低,如
[code=sql][/DROP TABLE #tmp
Create Table #tmp(
Ration Decimal(28,10) null
,convertfirst Decimal(28,10) null
,scraprate Decimal(10,9) null
)
Insert Into #tmp (Ration ,convertfirst ,scraprate ) values (0.0033 , 1000 , 0 )
select Ration/ convertfirst * ( 1 + ISNULL( scraprate , 0 ) )
from #tmpcode]
------解决方案--------------------
DROP TABLE #tmp
Create Table #tmp(
Ration Decimal(28,10) null
,convertfirst Decimal(28,10) null
,scraprate Decimal(10,9) null
)
Insert Into #tmp (Ration ,convertfirst ,scraprate ) values (0.0033 , 1000 , 0 )
select Ration/ convertfirst * ( 1 + ISNULL( scraprate , 0 ) )
from #tmp