Гость
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / приведение типов / 5 сообщений из 5, страница 1 из 1
02.09.2003, 10:36
    #32253377
-Timka-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приведение типов
Привет всем!
Сори за может глупый вопрос, но все-таки...
select 1 / 200
выводится ноль...
видать целочисленное деление сработало...
а вот так вот
select (1 + 0.0) / 200 все ок - т.е. то что мне нужно...
только вот неудобно в большом выражении прибавлять каждому по 0.0
может есть что-то подобное как в С: res = (float) ( a + b.....)...
Спасибо.
...
Рейтинг: 0 / 0
02.09.2003, 10:56
    #32253404
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приведение типов
можно вот так:
select 1.00 / 200

или можно так:
select convert(double, 1) / 200
...
Рейтинг: 0 / 0
02.09.2003, 12:38
    #32253568
-Timka-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приведение типов
2 ASCRUS

Это все хорошо... а если у меня трехэтажное выражение и много переменных.
Значит надо каждую пер-ую заключать в скобки и приплюсовывать нуль.нуль?
плохо...
я когда приводил пример вместо 1 подразумевал поле типа decimal(30,6). Когда оно содержит целое число возникают проблемы...
раз другого способа нет придется делать так....
Спасибо всем откликнувшимся...
...
Рейтинг: 0 / 0
02.09.2003, 13:21
    #32253644
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приведение типов
Ну вообще то можно так:
select convert(numeric(30, 6), ТрехЭтажноеВыражение) / 200

я когда приводил пример вместо 1 подразумевал поле типа decimal(30,6). Когда оно содержит целое число возникают проблемы...
В ASA такого быть не может:
Код: plaintext
1.
2.
3.
4.
5.
6.
begin
  declare @ThreeLevelExpression numeric( 30 ,  6 );
  set @ThreeLevelExpression =  1 ;

  select @ThreeLevelExpression /  200 ;
end

На выходе 0.005000

Или Вы на ASE работаете ?
...
Рейтинг: 0 / 0
02.09.2003, 13:39
    #32253659
-Timka-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приведение типов
упс, действительно... ошибся, сори.
Просто я хотел сказать, что когда вычисляемое выражение сложное,
то хотелось бы сразу сначала определить все расчеты, скажем, как decimal(30,6).
а так я должен учитывать - если поле int, то надо не забыть сделать преобразование.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / приведение типов / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]