Вещественные числа

float r = 5.0
Значение 5.0 - число, представленное в виде десятичной дроби (имеет целую и дробную часть). В информатике такие числа называются вещественными
Вещественное число - это число, в котором есть целая и дробная части. Целая и дробная часть отделяются друг от друга точкой, а не запятой как в математике.
Даже если дробная часть числа равна нулю, как в переменной \(r\) в примере, все равно транслятор создаст в памяти вещественную переменную. Точка, как бы сигнал для транслятора, что необходимо создать именно вещественную переменную. 

Очень большие и очень маленькие числа  записываются с помощью "плавающей точки" (в так называемом научном формате).  
В научном формате число представляется в виде мантиссы(значащей части числа) и порядка. При записи мантисса и порядок отделяются друг от друга буквой e (обозначает 10 в какой-то степени). 
Например, можно сохранить в переменной значение заряда электрона ( \(1,60217662 \times 10^{-19}\) Кл), записав в следующем виде
float El = 1.60217662e-19 #для положительного порядка знак + можно не записывать
Практически все вещественные числа не могут храниться в памяти компьютера с идеальной точностью, так как под их хранение выделяется ограниченное число бит. Поэтому при вычислениях с вещественными числами ошибки, связанные с неточностью представления накапливаются. Причем чем меньше места выделено, тем больше будет эта ошибка. Для того, чтобы уменьшить ошибку в С++ используют тип double, который хранит в памяти вещественное число с двойной точностью (занимает в памяти восемь байт, в то время как тип \(float \)- 4 байта)

Ввод

Ввести несколько вещественных переменных из входного потока и записать их в переменные можно стандартным способом:
float x, y;
cin >> x >> y;
Первое число попадает в переменную \(x\), второе - в \(y\)

Вывод

При выводе вещественных чисел, по умолчанию выводится 6 знаков после запятой, при этом автоматически выбирается научный формат или с фиксированной запятой.
Можно настроить вывод так, как нужно по условию задачи. Для этого используется дополнительная библиотека iomanip - манипуляторы, управляющие выводом.
Для вывода в формате с фиксированной запятой используется команда fixed, для научного формата - scientific. Затем необходимо определить количество цифр в дробной части с помощью команды setprecision(). С помощью команды setw можно задать общее число позиций, отводимых на вывод числа
Пример:
float x = 1.0/6;
cout << fixed << setprecision (9);  // установили вывести 9 цифр в дробной части
cout << setw(12) << x;                            
На экране выведется
_0.166666672                  
Все команды можно записать и в одну строчку:
cout << fixed << setprecision(9) << setw(12) << x;

При работе с вещественными числами можно использовать уже знакомый нам модуль сmath, который содержит большое число встроенных функций. 
При решении задач часто приходится округлять вещественные числа до ближайших целых значений. Для этого имеются две функции.

ЗАПОМИНАЕМ
1
при явном преобразовании типа ( float x=1.5; int y = int (x))  -  дробную часть вещественного числа отсекается (y = 1) 
2 функция floor (x) -  возвращает наибольшее целое, меньшее или равное \(x\) (округление "вниз")
3 функция ceil (x) -  возвращает наименьшее целое, большее или равное \(x\) (округление "вверх")

Приведем наиболее полезные функции, содержащиеся в модуле cmath.
Функция Описание
Округление
round(x)
C++ 11
Округляет число до ближайшего целого. Если дробная часть числа равна 0.5, то число округляется до ближайшего целого числа. 
trunc(x)
C++ 11
Отбрасывает дробную часть
floor(x) Округляет число вниз («пол»), при этом floor(1.5) == 1floor(-1.5) == -2
ceil(x) Округляет число вверх («потолок»), при этом ceil(1.5) == 2ceil(-1.5) == -1
abs(x) Модуль (абсолютная величина).
fabs(x) Модуль вещественного числа
Корни, логарифмы
sqrt(x) Квадратный корень. Использование: y = sqrt(x)
pow(x, y) Возводит x в степень y. \(x^y\)
log(x) Натуральный логарифм. 
exp(x) Основание натуральных логарифмов e = 2,71828...
Тригонометрия
sin(x) Синус угла, задаваемого в радианах
cos(x) Косинус угла, задаваемого в радианах
tan(x) Тангенс угла, задаваемого в радианах
asin(x) Арксинус, возвращает значение в радианах
acos(x) Арккосинус, возвращает значение в радианах
atan(x) Арктангенс, возвращает значение в радианах
atan2(y, x) Полярный угол (в радианах) точки с координатами (x, y).