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

Откуда: Новосибирск
Сообщений: 108
Добрый день как вывести 0,000008 в виде 0,000008, а не 8E-06?
14 авг 12, 08:38    [13007110]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести float без E?  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
declare @i float = 0.000008
select @i, cast( @i as decimal(10,6) )
14 авг 12, 08:51    [13007146]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести float без E?  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62908
А ты как выводишь? И какой float?
14 авг 12, 08:51    [13007147]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести float без E?  [new]
Soldat104
Member

Откуда: Новосибирск
Сообщений: 108
Knyazev Alexey
declare @i float = 0.000008
select @i, cast( @i as decimal(10,6) )


не пойдёт так. По причине того что разрядность после запятой у значения как -6 так -22.


to Anatoly Podgoretsky


select val from table
14 авг 12, 09:36    [13007287]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести float без E?  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Soldat104
не пойдёт так


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

зы: можете ещё использовать функцию
str
14 авг 12, 10:04    [13007368]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести float без E?  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
declare @i float = 0.000008;
select @i, replace(rtrim(replace(cast(cast(@i as decimal(38,22)) as varchar(50)), '0', ' ')), ' ', '0');
14 авг 12, 10:06    [13007377]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести float без E?  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
invm,
declare @i float = 0.0000000000000000000008 -- Е-22
select @i, replace(rtrim(replace(cast(cast(@i as decimal(38,22)) as varchar(50)), '0', ' ')), ' ', '0');


Soldat104,
Вообще, отображение - это задача клиента. Сервер ничего не отображает. По этому, это скорее вопрос к вашему клиенту, если таковым является SSMS, то я не знаю у нее таких настроек. Разве что отобразить это значение в виде строки, в 2012 например, это можно легко сделать функцией FORMAT.
14 авг 12, 10:21    [13007431]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести float без E?  [new]
Soldat104
Member

Откуда: Новосибирск
Сообщений: 108
спасибо буду на клиенте ковырять
14 авг 12, 10:45    [13007556]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести float без E?  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
SomewhereSomehow, ага, округлил зараза :)
14 авг 12, 10:55    [13007636]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить