Материал предоставлен https://it.rfei.ru

Приведение типов в выражениях

Приведение типов можно применять и к отдельным частям крупного выражения. Это позволяет точнее управлять преобразованиями типов при вычислении выражения. Рассмотрим следующий пример программы, в которой выводятся квадратные корни чисел от 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().

Преобразование типов в выраженияхПроверка знаний: Типы данных, литералы и переменные