2008-11-05 28 views
0

我有一个Clr用户定义的类型,它需要一个由逗号隔开的值串。Sql Clr用户定义类型解析一个浮点数并失去精度

转换成该类型后,我失去的精确一点点,我已经将范围缩小到这行代码:

cast(cast(nlinkjt as nvarchar(100)) + ',' +cast(avglrwf as nvarchar(100)) + ',' + cast(avglrwfjt as nvarchar(100)) as dbo.CLRJourneyTime) as clrJT 

输出= 29.9376,5.29633e-005,0.00158559

但一部开拓创新的值是像这样:

nlinkjt = 29.9376097988521 = cast(nlinkjt as nvarchar) = 29.9376 
avglrwf = 5.29632961843163E-05 = cast(avglrwf as nvarchar) = 5.29633e-005 
avglrwfjt = 0.00158559449482709 = cast(avglrwfjt as nvarchar) = 0.00158559 

我怎样才能彩车转换为字符串全部?

还是有声明新dbo.CLRJourneyTime就像你在.NET 像这样将另一种方式:

'new dbo.CLRJourneyTime(nlinkjt , avglrwf , avglrwfjt) as clrJT' 

回答

1

好了,刚刚发现的浮栏只存储大约4位小数反正..所以它可能不会有问题。