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

Откуда: Рашен Федерэйшен
Сообщений: 2272
Почему следующий нехитрый скрипт выдаёт в результате 0, а не то что хотелось бы?
declare @var1 int, @result float 

SET @var1 = 5
SET @result = CAST(@var1/500 AS float)
PRINT @result
26 июл 09, 18:37    [7461313]     Ответить | Цитировать Сообщить модератору
 Re: Арифметическое деление и преобразование типов  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
CmeTanka
Почему следующий нехитрый скрипт выдаёт в результате 0, а не то что хотелось бы?
declare @var1 int, @result float 

SET @var1 = 5
SET @result = CAST(@var1/500 AS float)
PRINT @result
Потому что есть определенные правила выполнения арифметических операций. Деление целого числа на целое по правилам целочисленных операций. В результате нуль. Правильно так
declare @var1 int, @result float 

SET @var1 = 5
SET @result = CAST(@var1 AS float)/500
PRINT @result
26 июл 09, 18:43    [7461327]     Ответить | Цитировать Сообщить модератору
 Re: Арифметическое деление и преобразование типов  [new]
точечка
Guest
достаточно поставить точечку после 500

declare @var1 int, @result float 

SET @var1 = 5
SET @result = @var1/500.
PRINT @result
27 июл 09, 03:18    [7461834]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить