0

コンマで区切られた値の文字列を取る 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

フロートを文字列に完全に変換するにはどうすればよいですか?

または、.net のように新しい dbo.CLRJourneyTime を宣言する別の方法があります。

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

1 に答える 1

1

とにかく、 float 列は小数点以下約 4 桁までしか保存されていないことがわかりました..だから、おそらく問題にはなりません。

于 2008-11-05T14:34:37.117 に答える