Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Преобразование float в varchar с сохранением "нормальной" нотации. Как ?  [new]
Форматёр
Guest
Здравствуйте.

Есть вот такой пример:
declare @n float,@s float
set @n=1
set @s=2.4
select float_val=@n/@s, char_v1=cast(@n/@s as varchar(max)), char_v2=convert(varchar(50),@n/@s,2)
и результат:
float_valchar_v1char_v2
0,4166666666666670.4166674.166666666666667e-001

Нужно, чтобы результат преобразования дроби в varchar выводился с точностью 16 знаков и при этом - в "обычной" (а не научной) нотации, т.е. так:
'0.416666666666667'

Как это сделать ? что-то не могу осуществить это средствами cast & convert.

Заранее спасибо за ответы.
25 окт 09, 19:52    [7835893]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование float в varchar с сохранением "нормальной" нотации. Как ?  [new]
iljy
Member

Откуда:
Сообщений: 8711
Форматёр,

вам 16 знаков после запятой надо? тогда используйте промежуточное преобразование в decimal(22,16).
declare @n float,@s float
set @n=1
set @s=2.4
select float_val=@n/@s, char_v1=cast(@n/@s as varchar(max)), char_v2=convert(varchar(50),@n/@s,2),
       convert(varchar(50), convert(decimal(22,16), @n/@s)) char_v3

может быть проблема с замыкающими нулями, но она тут много раз обсуждалась.
25 окт 09, 20:13    [7835948]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование float в varchar с сохранением "нормальной" нотации. Как ?  [new]
Форматёр
Guest
iljy,

спасибо, всё получилось :-)
25 окт 09, 22:07    [7836146]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить