У меня есть определенный пользователем Clr тип, который берет строку значений, разделенных запятой.Sql Clr User Defined Тип разбора поплавка и потери точности
Я теряю немного точности при преобразовании этого типа, я сузили его до этой строки кода:
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
но значения Orignal подобны так:
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'