Приведение типов можно применять и к отдельным частям крупного выражения. Это позволяет точнее управлять преобразованиями типов при вычислении выражения. Рассмотрим следующий пример программы, в которой выводятся квадратные корни чисел от 1 до 10 и отдельно целые и дробные части каждого числового результата. Для этого в данной программе применяется приведение типов, благодаря которому результат, возвращаемый методом Math.Sqrt()
, преобразуется в тип int
.
// Пример приведения типов в выражениях.
using System;
class CastExpr {
static void Main() {
double n;
for (n = 1.0; n <= 10; n++) {
Console.WriteLine("Квадратный корень из {0} равен {1}",
n, Math.Sqrt(n));
Console.WriteLine("Целая часть числа: {0}",
(int)Math.Sqrt(n));
Console.WriteLine("Дробная часть числа: {0}",
Math.Sqrt(n) - (int)Math.Sqrt(n));
Console.WriteLine();
}
}
}
Вот как выглядит результат выполнения этой программы.
Квадратный корень из 1 равен 1
Целая часть числа: 1
Дробная часть числа: 0
Квадратный корень из 2 равен 1,4142135623731
Целая часть числа: 1
Дробная часть числа: 0,414213562373095
Квадратный корень из 3 равен 1,73205080756888
Целая часть числа: 1
Дробная часть числа: 0,732050807568877
Квадратный корень из 4 равен 2
Целая часть числа: 2
Дробная часть числа: 0
Квадратный корень из 5 равен 2,23606797749979
Целая часть числа: 2
Дробная часть числа: 0,23606797749979
Квадратный корень из 6 равен 2,44948974278318
Целая часть числа: 2
Дробная часть числа: 0,449489742783178
Квадратный корень из 7 равен 2,64575131106459
Целая часть числа: 2
Дробная часть числа: 0,645751311064591
Квадратный корень из 8 равен 2,82842712474619
Целая часть числа: 2
Дробная часть числа: 0,82842712474619
Квадратный корень из 9 равен 3
Целая часть числа: 3
Дробная часть числа: 0
Квадратный корень из 10 равен 3,16227766016838
Целая часть числа: 3
Дробная часть числа: 0,16227766016838
Как видите, приведение результата, возвращаемого методом Math.Sqrt()
, к типу int
позволяет получить целую часть числа. Так, в выражении
Math.Sqrt(n) — (int) Math.Sqrt(n)
приведение к типу int
дает целую часть числа, которая затем вычитается из всего числа, а в итоге получается дробная его часть. Следовательно, результат вычисления данного выражения имеет тип double
. Но к типу int
приводится только значение, возвращаемое вторым методом Math.Sqrt()
.
Преобразование типов в выражениях | Проверка знаний: Типы данных, литералы и переменные |