powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / cast('2147484.000' as int) выбрасывает num out of range. Why ?
11 сообщений из 11, страница 1 из 1
cast('2147484.000' as int) выбрасывает num out of range. Why ?
    #38743010
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Объясните, плз, как такое может быть:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SQL> select cast('2147483.000' as int) from rdb$database;

        CAST
============
     2147483

SQL> select cast('2147484.000' as int) from rdb$database;

        CAST
============
Statement failed, SQLSTATE = 22003
arithmetic exception, numeric overflow, or string truncation
-numeric value is out of range

(я догадываюсь, что это как-то связано с 2^31 = 2147483648, но... не врубаюсь, как он там "кастует" :)).
...
Рейтинг: 0 / 0
cast('2147484.000' as int) выбрасывает num out of range. Why ?
    #38743024
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

диалект какой?
...
Рейтинг: 0 / 0
cast('2147484.000' as int) выбрасывает num out of range. Why ?
    #38743030
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
третий.
...
Рейтинг: 0 / 0
cast('2147484.000' as int) выбрасывает num out of range. Why ?
    #38743057
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Птица последовательно кастует char->numeric(15.3)->integer. На первом касте и выкидывается
ошибка.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
cast('2147484.000' as int) выбрасывает num out of range. Why ?
    #38743061
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

спс.
...
Рейтинг: 0 / 0
cast('2147484.000' as int) выбрасывает num out of range. Why ?
    #38743184
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидDimitry Sibiryakov,

спс.
Вы конечно друг друга поняли, но у меня
Код: sql
1.
select cast('2147484.000' as numeric(15,3)) from rdb$database

прекрасно работает.
И так же прекрасно работает:
Код: sql
1.
select cast(cast('2147484.000' as numeric(15,3)) as integer) from rdb$database


:)
Так что бага там где-то.
...
Рейтинг: 0 / 0
cast('2147484.000' as int) выбрасывает num out of range. Why ?
    #38743209
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидне врубаюсь, как он там "кастует"
он преобразует строку отдельно в int (2147484000) и в scale (-3). Первое в int не лезет.
...
Рейтинг: 0 / 0
cast('2147484.000' as int) выбрасывает num out of range. Why ?
    #38743297
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrТаблоидне врубаюсь, как он там "кастует"он преобразует строку отдельно в int (2147484000) и в scale (-3). Первое в int не лезет.Выделенный текст неплохо бы в доку добавить.
А то ведь даже единицу нельзя прикастить:
Код: plaintext
1.
2.
3.
4.
5.
6.
SQL> select cast('1.0000000000' as int) from rdb$database;

        CAST
============
Statement failed, SQLSTATE = 22003
arithmetic exception, numeric overflow, or string truncation
-numeric value is out of range
...
Рейтинг: 0 / 0
cast('2147484.000' as int) выбрасывает num out of range. Why ?
    #38743322
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидВыделенный текст неплохо бы в доку добавить.
Когда же нам уже окончательно починят ту штучку внутри нас, которая интуитивно и верно разделяет добро и зло фичи и баги? :)
...
Рейтинг: 0 / 0
cast('2147484.000' as int) выбрасывает num out of range. Why ?
    #38743325
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидВыделенный текст неплохо бы в доку добавить.
Лучше в трекер, чтобы преобразование шло в long long вместо int. Потери скорости на
современных процах всё равно не будет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
cast('2147484.000' as int) выбрасывает num out of range. Why ?
    #38743404
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovв трекер, чтобы преобразование шло в long long вместо int. Зафигачил , только на опять на каком-то странном языке получилось. Но кому надо, тот поймёт, надеюсь :-)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / cast('2147484.000' as int) выбрасывает num out of range. Why ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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