![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Тип поля в базе Interbase [IB5.x]
Маруся © (2002-06-26 15:38:00)Почему, когда я создаю поле numeric(5,2) в базе оно создается как int (соответственно, без десятичных знаков), а не float?
И еще, чем отличается тип numeric от float в Interbase ?
Viewer (2002-06-26 16:51:00) [1]Потому, что это виртуальное поле, существующее при доступе к данным, а непосредственно данные размещяются в подходящем типе машинном типе данных. Округлений быть не должно, если только ты не пытаешься обратиться AsInteger
Маруся (2002-06-26 16:27:00) [2]Я все поняла, кроме одного: почему поле, объявленное как
numeric(5,2) создается с типом integer и ест-но, при добавлении в него данных десятичные дроби округляются до целого?
Viewer (2002-06-26 16:15:00) [3]Например
NUMERIC(4) == SMALLINT
NUMERIC(9) == INTEGER
NUMERIC(10,4) == DOUBLE PRECISION
Viewer (2002-06-26 16:12:00) [4]Float(double) - 32 и 64 разрядные поля для представления чисел
в формате "плавающая точка" с погрешностью 1/2 МЗР
Numeric (decimal) - виртуальные поля для представления чисел в формате "фиксированная запятая" с заданной точностью ppp.ss
Физическое представление их в IB определяется заданными при создании значениями ppp и ss и может быть типом от SMALLINT до
DOUBLE PRECISION.
Различие в Numeric и Decimal состоит в том, что при Numeric
разрядность определяется точно заданным, а при Decimal - не менее заданного.