VirQ. Приведение целого числа к дробному типу в C#
Язык C# входит в ТОП-5
самых популярных языков
программирования
Главная / Приведение типов /
Приведение целого числа к дробному типу
Статей на сайте: 61

Приведение целого числа к дробному типу


Все целые типы неявным образом конвертируются в дробные в тех случаях, когда это необходимо.
Ну, например, функция вычисления квадратного корня Math.Sqrt. Она принимает только double тип. Но это не мешает без преобразования вычислять корень целого числа:
[code] int a = 25; double b = Math.Sqrt(a); //Получим 5 [/code]


Если посмотреть на рисунок, вы увидите, что Math.Sqrt принимает только double-тип. Однако он полностью в себе содержит int числа, поэтому вот такая запись не является ошибкой, но и не имеет смысла:
[code] int a = 25; double b = Math.Sqrt((double)a); //Получим 5 [/code]
Сама запись (double) перед переменной, это и есть приведение числа к этому типу.
[code] int a = 25; double b = (double)a; //Приведение к типу double float c = (float)a; //Приведение к типу float decimal d = (decimal)a; //Приведение к типу decimal [/code]
Объясню, для чего тогда нужно приведение типов. Скажем, у вас целые числа (они взяты при вводе, с какой-то функции, возвращающей целые числа). Не важно, откуда, но они целые. И надо найти деление одного на другое. Например, 25 / 4. При попытке поделить напрямую вы получите только целую часть. А именно 6.
[code] int a = 25; int b = 4; int c = a / b; //Получите ровно 6 [/code]
Если же вы хотите получить точное значение с помощью знака "/", придётся использовать double-тип
[code] int a = 25; int b = 4; double c = (double)a / (double)b; //Получите 6,25 [/code]
Переменная "с" тоже имеет тип double, т.е. double/double=double
Для дотошных:
[code] int a = 25; int b = 4; double c = (double)a / b; //Получите 6,25 double d = a / (double)b; //Получите 6,25 [/code]
Таким образом видно, что достаточно к типу double привести только одно из чисел математического выражения. Другое число будет к типу double приведено неявным образом.

Дополнительная информация о том, как вывести результат в консоли или WinForm