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


float r = 5,0;

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

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

Практически все вещественные числа не могут храниться в памяти компьютера с идеальной точностью, так как под их хранение выделяется ограниченное число бит. Поэтому при вычислениях с вещественными числами ошибки, связанные с неточностью представления накапливаются. Причем чем меньше места выделено, тем больше будет эта ошибка. Для того, чтобы уменьшить ошибку в С# используют тип double, который хранит в памяти вещественное число с двойной точностью (занимает в памяти восемь байт, в то время как тип float - 4 байта).

При работе с вещественными числами можно использовать уже знакомый нам класс Math, который содержит большое число встроенных методов. 
При решении задач часто приходится округлять вещественные числа до ближайших целых значений:
1. При явном преобразовании типа ( double x=1.5; int y = int (x)) -  дробную часть вещественного числа отсекается (y = 1).
2. Метод Math.Floor(x) -  возвращает наибольшее целое, меньшее или равное x (округление "вниз").
3. Метод Math.Ceiling(x) -  возвращает наименьшее целое, большее или равное (округление "вверх").

Приведем наиболее полезные методы, содержащиеся в классе Math.
Метод Описание
Округление
Round(x) Округляет число до ближайшего целого значения; значения посередине округляются до ближайшего четного числа.
Round(x, n) Округляет десятичное значение до указанного числа знаков после запятой; значения посередине округляются до ближайшего четного числа.
Floor(x) Округляет число вниз («пол»), при этом floor(1.5) == 1floor(-1.5) == -2.
Ceiling(x) Округляет число вверх («потолок»), при этом ceil(1.5) == 2ceil(-1.5) == -1.
Abs(x) Модуль (абсолютная величина).
Truncate(x) Вычисляет целую часть числа.
Корни, логарифмы
Sqrt(x) Квадратный корень.
Pow(x, y) Возводит x в степень y
Log(x) Натуральный логарифм. 
Exp(x) Возвращает e, возведенное в указанную степень.
Тригонометрия
Sin(x) Синус угла, задаваемого в радианах
Cos(x) Косинус угла, задаваемого в радианах
Tan(x) Тангенс угла, задаваемого в радианах
Asin(x) Арксинус, возвращает значение в радианах
Acos(x) Арккосинус, возвращает значение в радианах
Atan(x) Арктангенс, возвращает значение в радианах
Atan2(y, x) Полярный угол (в радианах) точки с координатами (x, y).

Подробнее обо всех методах класса Math вы можете почитать здесь.