Форум: "Базы";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
ВнизЧто есть тип NUMERIC? Найти похожие ветки
← →
S@shka © (2004-06-09 13:17) [0]Ссылаясь на "Мир Interbase" изд 2.
Стр 21.
Numeric - разрядность от 1 до 18 и точность от 0 до разрялности.
(Разрядность - это общее цисло цифр в числе - точность - число знаков после запятой).
Кроме того дана таблица: Хранение числе с фикс. точностью
Разрядность Диалект 3
1-4 SMALLINT
5-9 Integer
10-18 INT64
------------------------------------------------------------
NUMERIC (10,2) - я так понимаю - это число у которого всего 10 цифр из которых до 2 после запятой.
Но почему тогда я в это поле могу внести значение
1 123 123 123, 11 - и оно корректно запишется???
NUMERIC (9,8)
позволяет хранить
11,111
но
111,111 - уже ошибка.
---------------------------------------------------------------
ОБъясните плиз, что да как с форматами данных с фиксированной точкой.
← →
Alexandr © (2004-06-09 13:32) [1]а может ну их нафиг, а?
использовать только Integer (int64) и double precision
с которыми все более чем прозрачно.
← →
S@shka © (2004-06-09 13:35) [2]Сомнительный ответ :)
Но все равно спасибо.
← →
bushmen © (2004-06-09 14:22) [3]Не знаю как в FB, а в MSSQL все так , как и должно быть! :)
← →
S@shka © (2004-06-09 14:35) [4]А как должно быть????
Я поэтому и вопрос задаю.
← →
bushmen © (2004-06-09 14:47) [5]Сам же говорил: "NUMERIC (10,2) - я так понимаю - это число у которого всего 10 цифр из которых до 2 после запятой."
← →
Johnmen © (2004-06-09 14:50) [6]>S@shka © (09.06.04 13:17)
Разрядность Диалект 3
1-4 SMALLINT
5-9 Integer
10-18 INT64
>NUMERIC (10,2) - я так понимаю - это число у которого всего 10
>цифр из которых до 2 после запятой.
Это INT64 (он же BIGINT).
>Но почему тогда я в это поле могу внести значение
>1 123 123 123, 11 - и оно корректно запишется???
Потому, что 112312312311 вполне влазит туда.
>NUMERIC (9,8)
>позволяет хранить
>11,111
>но
>111,111 - уже ошибка.
Потому, что 111111 не влазит в SMALLINT.
← →
S@shka © (2004-06-09 15:24) [7]> Johnmen
большое спасибо - тоесть на самом деле просто на тип и надо ориентироваться.
← →
S@shka © (2004-06-09 15:42) [8]Немножноко не корректно конечно....
Вот как правильно....
смотрится влазит ли число полностью с домножением на
10^точность типа
в указанный "подтип".
Для случая NUMERIC (9,8) подтип=INTEGER 2 147 xxx xxx
тогда иммеем 11,ххх => 11 * 10^8 = 1 1xx xxx xxx
и 111,xxx =>111 * 10^8 = 11 1xx xxx xxx - ПЕРЕБОР!!
Еще раз всем спасибо.
В книжке все таки криво рассморен вопрос с типами данных!!!!
← →
Johnmen © (2004-06-09 16:07) [9]Вообще говоря, NUMERIC и DECIMAL это псвдотипы. Которым соответствуют реальные FLOAT, DOUBLE PRECISION,SMALLINT,INT,BIGINT в зависимости от версии сервера и диалекта.
← →
Alexandr © (2004-06-09 16:17) [10]... с кучей специфичных особенностей в зависимости от версии, диалекта, фазы луны и прочего
← →
Fay © (2004-06-09 16:48) [11]2Alexandr © (09.06.04 13:32) [1]
Int64 = numeric(18, 0)
← →
Anatoly Podgoretsky © (2004-06-09 16:58) [12]Johnmen © (09.06.04 16:07) [9]
В других DECIMAL является BCD, а NUMERIC нет, иногда это одинаково.
← →
Alexandr © (2004-06-10 07:01) [13]Fay © (09.06.04 16:48) [11]
2Alexandr © (09.06.04 13:32) [1]
Int64 = numeric(18, 0)
да, в некоторых случаях другое обозначение сути вопроса не меняет.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.035 c