C# dasturlash tilida kasr sonlar nimaligini o'rnishdan oldin kasr sonlar o'zi nima ekanligi haqida qisqacha gaplashib olsak.
Kasr sonlar bu - Sonning butun qismidan tashqari nuqta bilan yana sonning yana bir qismi bo'lishiga aytiladi. Biz kundalik hayotimizda sanashda ishlatiladigan sonlar butun natural sonlar deb ataladigan bo'lsa, Kasr sonlar - biror og'irlik massasi, biror objectning 10.2 qismi 1.6 va hokazo qismlarni o'lchashda yoki malumot sifatida saqlashda ishlatamiz.
Kasr sonlar sonning butun qismidan tashqari nuqta orqali yana qoshimcha son oladi.
Misol uchun: 10.9, 1.6 va hokazo...
Endi C# da kasr sonlar haqida gaplashsak ham bo'laveradi.
C# dasturlash tilida Kasr sonlarni saqlash uchun asosan 3 xil o'zgaruvchidan foydalaniladi.
Bular:
Float, Double, Decimal
Float = C# da "float" - bu bir aniqlikdagi suzuvchi nuqtali raqamlarni belgilash uchun foydalaniladigan ma'lumotlar turi . Bu taxminan 1,5 × 10 ^ -45 dan 3,4 × 10 ^ 38 gacha bo'lgan keng qamrovli qiymatlarni saqlashga qodir 32 bitli ma'lumotlar turi
Double = C# tilidagi "Double" - bu o'nlik sonlarni yuqori darajadagi aniqlik bilan ifodalash uchun ishlatiladigan suzuvchi nuqtali ma'lumotlar turi . U "ikki marta" deb ataladi, chunki u "suzuvchi" ning ikki barobar aniqligini ta'minlaydi. "Double" 8 bayt xotirani egallaydi va taxminan 5,0 x 10^-324 dan 1,7 x 10^308 gacha bo'lgan qiymatlarni saqlashi mumkin
Decimal = ±1,0 x 10 - 28 dan ±7,9228 x 10 28 oralig'ida suzuvchi turdagi qiymatni saqlashi mumkin bo'lgan o'zgaruvchini e'lon qilish uchun ishlatiladigan kalit so'z . Bu tizimning taxallusidir. O'nlik va xotirada 16 bayt (128 bit) joy egallaydi.
Ularning farqlari nimada ?
float(C# taxalluslari System.Single) va double(C# taxalluslari System.Double) suzuvchi ikkilik nuqta turlaridir . float32 bitli; double64 bitli. Boshqacha qilib aytganda, ular shunday raqamni ifodalaydi:
10001.10010110011
decimal(C# taxallus System.Decimal) float kasrli nuqta turi hisoblanadi. Boshqacha qilib aytganda, ular shunday raqamni ifodalaydi:
12345.65789
Qisqa va lo'nda qilib aytganda
_
Aniqlik: decimal toifa, kasrli sonlarni aniqligi bo'yicha float va double toifalariga nisbatan yuqori aniqlik bilan ishlaydi.
Popularity: float < double < decimal bo'lib, bularning keraklicha saqlash joylarining o'lchamlari bilan bog'liq.
Ishlatish joylari:
float: Qisqa qiymatli sonlarni ifodalashda, masalan, grafik va animatsiya dasturlarida floatni ishlatamiz.
double: Umumiy hisob-kitoblarda yoki ko'p darajadagi aniqlik talab qilinadigan amaliyotlarda double ishlatamiz.
decimal: Moliyaviy hisob-kitob, pul miqdorlarini saqlash va moliyaviy operatsiyalarda decimal ishlatamiz.
_
Kod orqali ko'radigan bo'lsak.
float
float floatSon = 10.66:f;
double
double doubleSon = 10.66;
decimal
decimal decimalSon = 10.66m;
- > Bu yerda asosan xatoliklar literallar bilan bog'liq bo'ladi, dehqonchasiga tushuntiradigan bo'lsam - bu yerda float qatordagi kodga etibor bergan bo'lsangiz o'zgaruvchiga qiymat bergandan so'ng son oxiriga >f harfini yozdim.
- > Nega ?
- > Chunki float son ekanligini bildirish uchun, agar f harfni qo'ymaganimda compilator xatolik berar edi: Double son. float tipiga double son o'zlashtiryapsan shuni to'g'rila degan ma'noda.
- > Uni tushundik endi nega Decimal oxiriga m harfi qo'yildi ?
- > Chunki m kalitni kengaytmasi money so'zidan olingan. Yuqorida aytib o'tilganidek decimal moyliyav, yani pullar bilan ishlash uchun ishlatiladigan o'zgaruvchi hisoblanadi. Agar m qo'ymasak compilator xatolik berar edi: Double son. Decimal tipiga double son o'zlashtiryapsan shuni to'g'rila degan ma'noda.
Tushuntira oldim degan umiddaman. Agar tushunmagan bo'lsangiz bemalol menga murojaat qilishingiz mumkin.
Men: Ozodbek
Top comments (0)