C# для начинающих Пахомов Б. И



Download 8,15 Mb.
Pdf ko'rish
bet50/266
Sana20.04.2022
Hajmi8,15 Mb.
#567200
1   ...   46   47   48   49   50   51   52   53   ...   266
Bog'liq
C# for beginners


Глава 3. Базовые типы данных, переменные 
75 
преобразованиями по приведению типов). Такие преобразования нужны 
тогда, когда при вычислениях имеется угроза потери данных. Преобра-
зования с помощью вспомогательных классов требуются для преобра-
зования несовместимых типов, например, строковых данных в числа и 
наоборот. 
Пусть переменная типа 
int
должна быть преобразована в переменную 
типа 
long
. Это преобразование выполняется неявно, т. к. любое значе-
ние типа 
int
может храниться в переменной типа 
long
, и оба типа пред-
ставляют собой числа. C# выполняет такое преобразование автомати- 
чески. 
Однако обратное преобразование может вызвать проблемы. Некоторые 
значения, которые могут храниться в переменной 
long
, не помещаются 
в переменной типа 
int
(по определению самих переменных). Компиля-
тор не знает, случится ли такая ситуация или нет в процессе расчетов, 
поэтому, если вы просто присвоите переменной типа 
int
значение пере-
менной типа 
long
, компилятор выдаст ошибку. Но если вы точно знаете, 
что такое преобразование вполне допустимо и числа таковы, что потери 
части числа при присвоении не случится, то можете воспользоваться 
специальным 
оператором
приведения
типов
(явный тип преобразова-
ния), который имеет вид: 
(тип)
, где 
тип
— тип данных, к которому при-
водится данное, стоящее за этим оператором. Например, имеем: 
int a; 
long b;
. Запись 
a=b;
вызовет ошибку компиляции. Но запись 
a=(int)b;
пройдет. Оператор 
(int)
— оператор приведения к типу 
int
числа типа 
long
. При приведении типов имя требующегося типа размещается в 
круглых скобках непосредственно перед преобразуемым значением. 
Такая же ситуация складывается и с числами типов 
float
и 
double
. Пер-
вый тип преобразуется во второй автоматически, а второй — только 
принудительно, как только что показано с типом 
long
. Например, 
float 
aa=(float)1.2;
компилируется нормально, а 
float aa=1.2;
дает ошиб-
ку, потому что константа 
1.2
интерпретируется по умолчанию как тип 
double

Целые числа могут быть преобразованы в числа с плавающей точкой 
автоматически, но обратное преобразование требует использования 
оператора приведения типов. Например, 
double b=1.2;
long a=12; 
a=(long)b;
компилятор пропустит, а 
a=b;
нет. Ясно, что при таком пре-
образовании дробная часть числа, если она имеется, будет отброшена. 
Возникнет погрешность вычисления. 
Все приведения к типу 
decimal
и из него требуют применения операто-
ра приведения типов. Все числовые типы могут быть преобразованы 
в другие числовые типы с помощью этого оператора. 


76 
Download 8,15 Mb.

Do'stlaringiz bilan baham:
1   ...   46   47   48   49   50   51   52   53   ...   266




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish