Типы с плавающей точкой (float, double и long double)
Стандарт С++ определяет три типа данных для хранения вещественных значений: float, doubleи long double.
Типы данных с плавающей точкой хранятся в памяти компьютера иначе, чем целочисленные. Внутреннее представление вещественного числа состоит из двух частей – мантиссы и порядка. В IBM PC-совместимых компьютерах величины типа floatзанимают 4 байта, из которых один двоичный разряд отводится под знак мантиссы, 8 разрядов под порядок и 23 под мантиссу. Мантисса – это число, большее 1.0,но меньшее 2.0.Поскольку старшая цифра мантиссы всегда равна 1,она не хранится.
Для величин типа double,занимающих 8 байт, под порядок и мантиссу отводится 11 и 52 разряда соответственно. Длина мантиссы определяет точность числа, а длина порядка – его диапазон. Как можно видеть из табл. 9.1, при одинаковом количестве байт, отводимом под величины типа floatи long int,диапазоны их допустимых значений сильно различаются из-за внутренней формы представления.
Спецификатор longперед именем типа doubleуказывает, что под величину отводится 10байт.
Константы с плавающей точкой имеют по умолчанию тип double.Можно явно указать тип константы с помощью суффиксов F, f (float)и L, 1 (long).Например, константа 2E+6Lбудет иметь тип long double,а константа 1.82f– тип float.
Таблица 9.1.
Дата добавления: 2015-10-09; просмотров: 938;