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



 

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

Целая чaсть числа: 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().

 

ГЛАВА 4 Операторы

 

В языке C# предусмотрен обширный ряд операторов, предоставляющих программирующему возможность полного контроля над построением и вычислением выражений. Большинство операторов в C# относится к следующим категориям: арифметические, поразрядные , логические и операторы отношения. Все перечисленные категории операторов рассматриваются в этой главе. Кроме того, в C# предусмотрен ряд других операторов для_ особых случаев, включая индексирование массивов, доступ к членам класса и обработку лямбда-выражений. Эти специальные операторы рассматриваются далее в книге вместе с теми средствами, в которых они применяются.

 

 

Арифметические операторы

 

Арифметические операторы, представленные в языке С#, приведены ниже.

 

Оператор Действие

 

+  Сложение

- Вычитание, унарный минус

*  Умножение

/  Деление

% Деление по модулю

— Декремент

++  Инкремент

 

Операторы +, * и / действуют так, как предполагает их обозначение. Их можно применять к любому встроенному числовому типу данных.

Действие арифметических операторов не требует особых пояснений, за исключением следующих особых случаев. Прежде всего, не следует забывать, что когда оператор / применяется к целому числу, то любой остаток от деления отбрасывается; например, результат целочисленного деления 10/3 будет равен 3. Остаток от этого деления можно получить с помощью оператора деления по модулю (%), который иначе называется оператором вычисления остатка. Он дает остаток от целочисленного деления. Например, 10 % 3 равно 1. В C# оператор % можно применять как к целочисленным типам данных, так и к типам с плавающей точкой. Поэтому 10.0 % 3.0 также равно 1. В этом отношении C# отличается от языков С и C++, где операции деления по модулю разрешаются только для целочисленных типов данных. В приведенном ниже примере программы демонстрируется применение оператора деления по модулю.

 

// Продемонстрировать применение оператора %.

using System;

class ModDemo {

static void Main() {  

int iresult, irem;  

double dresult, drem;

iresult = 10 / 3;  

irem = 10 % 3;

dresult = 10.0 / 3.0;  

drem = 10.0 % 3.0;

Console.WriteLine("Результат и остаток от деления 10/3: "

+ iresult + " " + irem);

Console.WriteLine("Результат и остаток от деления 10.0 / 3.0: "

+ dresult + " " + drem);

}

}

 

Результат выполнения этой программы приведен ниже.

 


Дата добавления: 2019-02-12; просмотров: 283; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!