Sql Clr Определяемый пользователем тип парсинга и потери точности - PullRequest
0 голосов
/ 05 ноября 2008

У меня есть определенный пользователем тип 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

но значения 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'

1 Ответ

1 голос
/ 05 ноября 2008

Хорошо, только что обнаружил, что столбец с плавающей запятой в любом случае хранится только до 4 десятичных разрядов ... так что, вероятно, это не имеет значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...