Сегодня опять выдалась свободная минут в процессе подготовки к сессии. Что-то в этом году она какая-то уж слишком напряженная – никак не могу все сдать. Думаю, что все нормально получится, так что переживать особо не надо, но и расслабляться (пока) не стоит, а то вообще все оставшееся не сдам.
Сегодня я расскажу вам про два типа данных – BINARY_FLOAT и BINARY_DOUBLE. В самое ближайшее время постараюсь еще продолжить рассказ о новых технологиях от компании Microsoft. Ладно – перейдем к непосредственно самой теме статьи, а про планы немного расскажу в самом конце.
Типы данных BINARY_FLOAT и BINARY_DOUBLE
Эти типы данных представляют числа с плавающей точкой с одинарной или удвоенной точностью соответственно.
Значения, принадлежащие типу данных BINARY_FLOAT заканчиваются символом f (например – 3,2f), а значения BINARY_DOUBLE – символом d (например – 7,00004d).
При выполнении со значениями, принадлежащими этим типам, исключений не инициализируется. Поэтому необходимо проверять результирующие значения на переполнение и потерю точности , используя для этого следующие предопределенные константы (надо сравнивать их с получившимися значениями):
Константы | Описание |
BINARY_FLOAT_NAN | Значение BINARY_FLOAT, для которого истинно условие IS NAN (Not A Number) |
BINARY_FLOAT_INFINITY | Значение BINARY_FLOAT, принадлежащее плюс бесконечности, для которых это условие истинно |
BINARY_FLOAT_MAX_NORMAL | Самое большое конечное число, которое находится прямо перед порогом переполнения |
BINARY_FLOAT_MIN_NORMAL | Наименьшее число, которое находится за один шаг до порога переполнения |
BINARY_FLOAT_MAX_SUBNORMAL | Максимальное положительное число до порога переполнения |
BINARY_FLOAT_MIN_SUBNORMAL | Самое минимальное число (которое можно отобразить) |
BINARY_DOUBLE_NAN | Значение BINARY_DOUBLE, для которого истинно условие IS NAN (Not A Number) |
BINARY_DOUBLE_INFINITY | Значение BINARY_ DOUBLE, принадлежащее плюс бесконечности, для которых это условие истинно |
BINARY_DOUBLE_MAX_NORMAL | Самое большое конечное число, которое находится прямо перед порогом переполнения |
BINARY_DOUBLE_MIN_NORMAL | Наименьшее число, которое находится за один шаг до порога переполнения |
BINARY_DOUBLE_MAX_SUBNORMAL | Максимальное положительное число до порога переполнения |
BINARY_DOUBLE_MIN_SUBNORMAL | Самое минимальное число (которое можно отобразить) |
Типы данных BINARY_FLOAT и BINARY_DOUBLE используются в основном для вычислений в научных целях, где требуются высокие скорости.
Типы данных SIMPLE_FLOAT и SIMPLE_DOUBLE – это предопределенные подтипы типов BINARY_FLOAT и BINARY_DOUBLE соответственно. Каждый подтип имеет такой же диапазон значений, что и его базовый тип и дополнительно имеет ограничение NOT_NULL.
Тип данных NUMBER
Этот тип данных используется для хранения чисел с фиксированной или плавающей точкой, модули которых должны находиться в диапазоне значений от 1Е-130 до 1.0Е126 (и ноль конечно).
Рекомендуемся использовать значения (и результаты вычислений) входящие в допустимый диапазон типа NUMBER. Если значения выходят за эти пределы произойдет следующее:
- Любое слишком маленькое значение округляется до 0;
- Если значение слишком велико – инициируется исключение;
- Если результаты значений слишком велики – они становятся неопределенными и приводят к непредсказуемым результатам во время выполнения программы
Для значений типа NUMBER можно указать общее количество знаков и количество знаков после запятой:
NUMBER (общее число, число после запятой)
NUMBER (5, 2)
Если представляем целое число – то количество знаков после запятой просто не нужно писать (оно равно нулю):
NUMBER (3)
А если просто записать NUMBER – то есть без указания каких-либо чисел, так мы зададим формат с плавающей точкой.
И еще предлагаю рассмотреть предопределенные подтипы типа данных NUMBER:
Тип данных | Описание |
DEC, DECIMAL, NUMERIC | Числа NUMBER с фиксированной точкой с размерностью в 38 десятичных знаков |
DOUBLE PRECISION или FLOAT | Числа NUMBER с плавающей точкой с максимальной точностью (38 десятичных разрядов) |
INT, INTEGER, SMALLINT | Целые числа с максимальной точностью 38 десятичных разрадов |
REAL | Числа NUMBER с плавающей точкой с максимальной точностью 18 десятичных разрядов |
На этом мы закончим рассматривать числовые типы данных. До Нового Года я еще напишу о следующих типах данных (символьных наверно). Так что это не все. И еще – вот где вы лечите своих домашних животных (не по теме немного)? Например – есть хороший ветеринарный врач – поможет при многих заболеваниях ваших кошечек и собачек. Пока не обращался, у меня все здоровы.
"BINARY_FLOAT заканчиваются символом а (например – 3,2f)". Так все таки, каким символом заканчиваются a или f ?
ОтветитьУдалитьЭто у меня пунто свитчер сработал. Такие числа заканчиваются символом F (английским символом)
ОтветитьУдалить