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

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

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


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