Числа, которые могут содержать десятичную часть (вещественные), называются числами с плавающей точкой (floating-pointvalues). Для работы с ними в языке Си используется тип данных с плавающей точкой (float). Так как числа с плавающей точкой могут быть чрезвычайно маленькими или большими, для их записи часто используют экспоненциальную форму, например, значение числа с плавающей точкой может равняться 3.4е+38. Расшифровать это можно следующим образом: «передвинуть точку вправо на 38 пунктов, добавив соответствующее количество нулей». Существуют дополнительные типы данных для работы в очень широких пределах величин:
| Float
| величины от 3.4Е–38 до 3.4Е+38
|
| Double
| величины от 1.7Е–308 до 1.7Е+308
|
| longdouble
| величины от 3.4Е–4932 до 1.1Е+4932
|
Тип данных с плавающей точкой имеет предел точности, диапазон которого зависит от компилятора. Например, число 6.12345678912345 в пределах допустимого диапазона для чисел типа float может быть записано компьютером только как 6.12345. Этот тип, как принято говорить, является типом с одинарной точностью, что означает, что точность его ограничена пятью или шестью знаками после точки. Тип double принято называть типом с двойной точностью, он имеет 15–16 знаков после точки.
Рис. 5. Требования к объему памяти данных различных типов
Для записи данных с одинарной точностью резервируется четыре элемента памяти; двойная точность требует резервирования восьми, повышенная (longdouble) — десяти.
На рис. 5 мы просуммировали сведения о типах данных в языке Си и их требованиях к резервированию памяти.