C# dasturlash tilida Kasr sonlar.
Tags: float, double, decimal, kasr
Published: 2024-04-12 04:31:58


**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
](https://t.me/dotnetgo2)