Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

Что есть тип 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
1-1087478400
Leron
2004-06-17 17:20
2004.07.04
А как получить имена всех запущенных файлов word a


1-1087901342
Artem
2004-06-22 14:49
2004.07.04
Как узнать имя динамически создоваемого меню


6-1083934129
Denis_ada
2004-05-07 16:48
2004.07.04
прилож. кл.–серв. для работы с файлами и папками на удал.машине


1-1087821341
Bulgar
2004-06-21 16:35
2004.07.04
Работа с текстовыми файлами


14-1087146631
hgd
2004-06-13 21:10
2004.07.04
СРОЧНО