2008-11-05 15 views
0

J'ai un type défini par l'utilisateur Clr qui prend une chaîne de valeurs séparées par une virgule.Sql Clr Défini par l'utilisateur Type analysant un flottant et perdant de la précision

Je perdre un peu de précision lors de la conversion de ce type, je l'ai réduit à cette ligne de code:

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

sortie = 29.9376,5.29633e-005,0.00158559

mais les valeurs sont Orignal comme ceci:

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 

comment convertir les flotteurs à une chaîne en pleine?

Ou est-il une autre façon de déclarer une nouvelle dbo.CLRJourneyTime comme vous le feriez dans .net comme ceci:

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

Répondre

1

Ok, juste a découvert que la colonne flottante ne sont stockées à environ 4 décimales de toute façon .. donc ce ne sera probablement pas important.