Вещественные числа в C++ могут быть одного из трех типов: с одинарной точностью (float), с двойной точностью (double) и с расширенной точностью (long double):
float x;
double e = 2.9;
long double s;
В большинстве реализаций языка представление и диапазоны значений соответствуют стандарту IEEE (Institute of Electrical and Electronics Engineers) для представления вещественных чисел. Именно в соответствии с этим стандартом в табл. 1 и приведены диапазоны значений вещественных чисел. Точность представления чисел составляет 7 десятичных значащих цифр для типа float, 15 значащих цифр для double и 19 для типа long double.
Вещественные числа записываются либо в виде десятичных дробей: 1.3, 3.1415, 0.0005, либо в виде мантиссы и экспоненты: 1.2Е-1, 0.12е0. Отметим, что обе предыдущие записи изображают одно и тоже число 0.12.
По умолчанию вещественная константа принадлежит к типу double.
Для вещественных чисел определены все стандартные арифметические операции: изменения знака (-), сложения (+), вычитания (-), умножения (*), деления (/) и изменения знака (-). В отличие от целых чисел, операция % не определена. Аналогично, все побитовые операции и сдвиги не применимы к вещественным числам; они работают только с целыми числами.
Вещественные числа можно сравнивать на равенство (= =), неравенство (!=), больше (>), меньше (<), больше или равно (>=) и меньше или равно (<=). В результате операции сравнения получается логическое значение истина или ложь.
Если арифметическая операция применяется к двум вещественным числам разных типов, то менее точное число преобразуется к более точному, то есть float преобразуется в double и double преобразуется к long double. Очевидно, что такое преобразование всегда можно выполнить без потери точности.
Если вторым операндом в операции с вещественным числом выступает целое число, то целое число преобразуется в вещественное представление.
Хотя любую целую величину можно представить в виде вещественного числа, при таком преобразовании возможна потеря точности (для больших чисел).