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

Откуда: Ленинградская область
Сообщений: 123
Добрый день.
Пишу запрос

SELECT 'Резерв: ' +  CONVERT(nvarchar, [FloatField]) FROM tblTable WHERE ID = 1


Выдает: "Резерв: 1е+008"
Как избежать автоматического применения экспоненциального формата, который начинает срабатывать от числа 1 000 000 ?
Спасибо.
26 фев 13, 16:39    [13984011]     Ответить | Цитировать Сообщить модератору
 Re: Нежелательная конвертация большого числа в экспоненциальный формат  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Integrator2,

а точно FLOAT нужен? Может, можно без него обойтись?

Как бы то ни было, придётся, наверно, сначала в DEC
подходящего размера преобразовывать
26 фев 13, 16:51    [13984094]     Ответить | Цитировать Сообщить модератору
 Re: Нежелательная конвертация большого числа в экспоненциальный формат  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3274
1. Конкатенировать на клиенте;
2. Предварительная конверсия в money / bigint / numeric (38,X), если сопутствующая этому потеря точности для вас несущественна, а размер типа достаточен для гарантированного отсутствия переполнения;
3. Не хранить деньги в приближенных типах данных...
26 фев 13, 16:52    [13984100]     Ответить | Цитировать Сообщить модератору
 Re: Нежелательная конвертация большого числа в экспоненциальный формат  [new]
Shakill
Member

Откуда: мск
Сообщений: 1880
или вот
SELECT 'Резерв: ' +  STR([FloatField], 20, 2) FROM tblTable WHERE ID = 1
26 фев 13, 17:12    [13984278]     Ответить | Цитировать Сообщить модератору
 Re: Нежелательная конвертация большого числа в экспоненциальный формат  [new]
Integrator2
Member

Откуда: Ленинградская область
Сообщений: 123
Спасибо. А можно как-то отформатировать число (на сервере) с помощью какой-нибудь втроенной функции типа FormatNumber, чтобы на выходе уже была строка: после дробного разделителя было строго две цифры и чтобы был тысячный разделитель - пробел? Или только писать свою пользовательскую функцию?
26 фев 13, 17:14    [13984294]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить