Данные три типа данных могут хранить в себе числа с плавающей точкой, но между ними существует разница, которую легче всего увидеть на следующем примере:
Нужно создать 3 переменные типа float
, double
, decimal
и каждой переменной присвоить следующее значение 0.12345678901234567890
, после чего вывести сохранённые значения в переменных на экран.
static void Main()
{
float variable1 = 0.12345678901234567890f;
double variable2 = 0.12345678901234567890d;
decimal variable3 = 0.12345678901234567890m;
Console.WriteLine($"float : {variable1}");
Console.WriteLine($"double : {variable2}");
Console.WriteLine($"decimal : {variable3}");
Console.ReadKey();
}
Результат работы программного кода выше:
Из результата следует следующее:
- переменные типа
float
позволяют хранить числа с плавающей точкой и позволяют сохранить 6 цифр после точки, если в переменную передают число, у которого цифр после точки больше 6, то произойдёт округление - переменные типа
double
позволяют хранить числа с плавающей точкой и позволяют сохранить 15 цифр после точки, если в переменную передают число, у которого цифр после точки больше 15, то произойдёт округление - переменные типа
decimal
позволяют хранить переданные в них значения с указанной точностью (округление не произойдёт). Максимальное количество цифр после точки для типаdecimal
равно 28.
С этого следует вывод: если необходимо сохранять число с указанной точностью, то нужно использовать тип decimal
, в других же случаях float
или double
.
Источник: видеоурок Александра Шевчука "ВИДЕОУРОК №2. МАШИННАЯ МАТЕМАТИКА И СИСТЕМЫ СЧИСЛЕНИЯ"