Тип
Qaysi turlarga o'tish xavfsiz?
byte
short, ushort, int, uint, long, ulong, float, double, decimal
sbyte
short, int, long, float, double, decimal
short
int, long, float, double, decimal
ushort
int, uint, long, ulong, float, double, decimal
int
long, float, double, decimal
uint
long, ulong, float, double, decimal
long
float, double, decimal
ulong
float, double, decimal
float
double
char
ushort, int, uint, long, ulong, float, double, decimal
Berilganlar turlarining shajarasi.
Shuni ham ta'kidlash kerakki, ikkitomonlama va o'nlik
kasr ma'lumotlarini saqlashi mumkin, va o'nlik kasr ikki
baravar kattaroq bit chuqurligiga ega bo'lsa-da, baribir
ikkilangan qiymatni o'nlik turiga aniq kiritishingiz kerak:
double a = 4.0;
decimal b = (decimal)a;
Ma'lumotlarni yo'qotish va tekshirilgan kalit so'z
Masalan, quyidagi holatda bo'ladigan yana bir vaziyatni
ko'rib chiqamiz:
int a = 33;
int b = 600;
byte c = (byte)(a+b);
Natijada
121,
shuning
uchun
633
bayt
doirasidan
tashqarida va yuqori tartibli bitlar qisqartiriladi. Natijada
121 raqami olinadi, shuning uchun konvertatsiya qilishda
buni hisobga olish kerak. Va bu holda biz bunday sonlarni
qabul qilishimiz mumkin, ular soni 255 dan oshmaydi yoki
bayt o'rniga boshqa ma'lumot turini tanlashimiz mumkin,
masalan, int.
Biroq, vaziyatlar boshqacha bo'lishi mumkin. A va b
qanday qiymatlarga ega bo'lishini aniq bilmasligimiz
mumkin.
Avtomatik konvertatsiya quyidagi shartlar bajarilganda amalga
oshadi
• The two data types are compatible. (Ikkala ma’lumot toifasi
bir-biriga mos kelganda)
• When we assign value of a smaller data type to a bigger data
type. (Kichik hajmli ma’lumot toifasini katta hajmli ma’lumot
toifasiga o’zlashtirganda)
•
E’tiboringiz uchun rahmat!
|