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

Откуда:
Сообщений: 32
Здравствуйте, обьясните пожалуйста почему 2-е выражение работает, а 1-е нет

DECLARE @a FLOAT, @b FLOAT
SELECT @a =2.56410256410256 , @b = 0.00
SELECT *
FROM (SELECT (@b-@a)*100.0 /@a AS t ) y
WHERE t = -100
GO

DECLARE @a FLOAT, @b FLOAT
SELECT @a =2.56410256410256 , @b = 0.00
SELECT *
FROM (SELECT (@b/@a-1)*100.0 AS t) y
WHERE t = -100
GO
22 фев 16, 19:32    [18851906]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с автопреобразованием типов  [new]
Mike_za
Member

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

И какую ошибку пишет?
22 фев 16, 20:32    [18852046]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с автопреобразованием типов  [new]
Mike_za
Member

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

Вы просто сеелект выражения посмотрели?
22 фев 16, 20:35    [18852057]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с автопреобразованием типов  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
Gorr
Здравствуйте, обьясните пожалуйста почему 2-е выражение работает, а 1-е нет
Потому что нельзя сравнивать значения типа float на эквивалентность, т.к. это неточный тип данных.
declare @a float= 2.56410256410256, @b float = 0.00;

select
 cast((@b - @a) * 100.0 / @a as binary(8)),
 cast((@b / @a - 1) * 100.0 as binary(8)),
 cast(cast(-100.0 as float) as binary(8));
22 фев 16, 21:03    [18852108]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с автопреобразованием типов  [new]
Gorr
Member

Откуда:
Сообщений: 32
Mike_za,
да, в обоих случаях возвращает -100
22 фев 16, 21:07    [18852115]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с автопреобразованием типов  [new]
Crimean
Member

Откуда:
Сообщений: 13148
в первом случае возвращает -100.0000000000000100 или что-то типа того
22 фев 16, 21:11    [18852126]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с автопреобразованием типов  [new]
Gorr
Member

Откуда:
Сообщений: 32
invm,
Спасибо!
22 фев 16, 21:12    [18852131]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить