Это семейство типов, значения которых являются вещественными(дробны-ми). Типы различаются диапазоном значений и объемом выделяемой под элемент памяти.
Память в байтах | Память в разрядах | Диапазон | Точность представления (число разрядов мантиссы) | Тип Basic | Тип C |
|x|<3,4...1038 | 6-7 | single | float | ||
|x|<1,79...10308 | double | double | |||
|x|<1,79...10308 | long double |
Замечание. Типы doubleи long doubleв современных версиях языка C не отличаются. Тип long double введен для совместимости со стандартом языка, поэтому его употреблять не рекомендуется.
Литералы имеют 2 формы записи:
- обычную:
[+|-]<целая часть>.<дробная часть>
и экспоненциальную или показательную:
<мантисса>e<степень>,
где мантисса – это целое число или число с плавающей точкой в обычной форме, e означает 10 в степени (регистр не важен), степень – целое число.
Все литералы с плавающей точкой относятся к типу double.
Пример.
-2.3 5e-15 -2.245E12 0.0002 .0002 (в Basic–>0.0002 среда корректирует)
В языке С допустима запись вида 26., чтобы избежать дополнительного преобразования.
Несмотря на различные формы записи литералов (внешнего представления) данные этого типа хранятся в памяти компьютера в форме с плавающей точкой (мантисса, порядок), отсюда и произошло название типа.
Замечание 1. В языке C разделитель между целой и дробной частью числа или мантиссы в виде десятичной точки может отсутствовать только при наличии степени (экспоненты). Если отсутствуют и точка, и степень, это означает литерал целого типа.
Замечание 2. Basic. Весьма важно!!! Во многих странах, в том числе и в нашей, в качестве десятичного разделителя используется символ ",". Более того, многие программы, например Microsoft Excel, используют в этом качестве установки ОС, которые могут быть изменены. В результате при вводе данных с клавиатуры или выводе их на экран (печать) используются установки ОС, однако при задании литералов в тексте программы необходимо употреблять в качестве разделителя точку. Эти проблемы также возникнут при работе с датами, временем, денежными единицами.