Отображение пременной float

ZZZZZ
Дата: 13.10.2003 12:27:03
Столкнулся со следующей проблемой.

declare @n float
set @n=(select f2 from testPB where weeknum=27)
print @n

Выдает значение
4.28788e+006
А просто

select f2 from testPB where weeknum=27

Соответственно

4287880.1299999999

------------------------
При попытке запихнуть значение переменной @n
в поле типа float таблицы теряется хвост .1299999999
Вопрос:
Почему переменная типа float отображается в
экспоненциальном виде и как это победить?
Зараннее благодарен за любые дельные мысли.
pkarklin
Дата: 13.10.2003 12:50:45
Почему переменная типа float отображается в
экспоненциальном виде и как это победить?
Зараннее благодарен за любые дельные мысли.


Отображается где? Победить что?
ZZZZZ
Дата: 13.10.2003 12:57:40
2 pkarklin
Отображается в QA при отладке процедуры.
Победить потерю дробной части при вставке значения
переменной в таблицу.
Berg
Дата: 13.10.2003 12:59:34
> Победить потерю дробной части при вставке значения
> переменной в таблицу.
А нет ее...потери...:-)

P.S. Если вам точности не хватает, то есть numeric...
pkarklin
Дата: 13.10.2003 13:03:16
Победить потерю дробной части при вставке значения
переменной в таблицу.


Запрос на вставку покажи. Да и почему ты float (тип с приблизительной точностью используешь), а не numeric&
Glory
Дата: 13.10.2003 13:04:52
Победить потерю дробной части при вставке значения
переменной в таблицу.


У вы уверены, что "запихиваете" то что нужно именно туда куда нужно

declare @t table(f1 float)

declare @n float
set @n = 4287880.1299999999

select @n
insert @t values(@n)

select * from @t


А отображение данных в QA есть дело самого QA. Как впрочем и любого другого клиентского приложения.
ZZZZZ
Дата: 13.10.2003 13:14:24
Float использую по настоянию постановщика.


CREATE TABLE tbl1
(
f1 float NULL
)
declare @n float
set @n=(select f2 from testPB where weeknum=27)
print @n
insert tbl1 values (@N)
select * from tbl1

-----------

4287880.0

Причем,что любопытно, такие чудеса начались
с утра в понедельник. До этого все было ОК.
Glory
Дата: 13.10.2003 13:16:24
А так ?
CREATE TABLE tbl1 

(
f1 float NULL
)
insert tbl1 select f2 from testPB where weeknum=27
select * from tbl1
pkarklin
Дата: 13.10.2003 13:19:01
Float использую по настоянию постановщика.

:-) Хотелось бы услышать аргументацию.
ZZZZZ
Дата: 13.10.2003 13:19:41
2 Glory
Хм, странно, а так
------------------
4287880.1299999999
------------------
Чего-то либо лыжи не едут, либо со мной что-то не так.....