Kasr sonlar - bular verguldan keyin 0 yoki undan ko'roq son bilan ifodalanadigan sonlar. Masalan: 2.4, 0.1, 3.14, 16.984025 va 1024.0.
.NET dasturchi sifatida ish jarayoninggizda kasr sonlardan foydalanishingizga to'g'ri keladi. Asosan, kodda matematik amallarni bajarganda kasr sonlar bilan ishlash foydali.
C# dasturlash tilida kasr sonlarni ifodalash uchun 3 ta tip mavjud, bular: float, double va decimal.
-
float
: bu type bilan yaratilgan o'zgaruvchi xotiradan 4 byte joy egallaydi (bu 32 bit degani). Float typedan foydalanganda sonning oxiriga f yoki F suffiksi yoziladi:
float masofa = 165.78f;
float masofa2 = 156.47F;
Float type sonlarni ~6 - 9 xona aniqlikda ko'rsatib beradi.
Rasmdan ko'rishimiz mumkinki, sonni print qilyotgan payti 9 xona aniqlikda bo'lsin deyilgan, lekin javob 6 xona aniqlik bilan (.300000) chiqyapti.
-
double
: bu type bilan yaratilgan o'zgaruvchi xotiradan 8 byte joy egallaydi (bu 64 bitga teng). Double typedan foydalandanda sonning oxiriga d yoki D suffiksi yoziladi (suffiks yozilmasa ham ishlaydi, chunki default holda kasr sonlar double typeda bo'ladi):
double m = 145.6;
double masofa = 165.78d;
dpuble masofa2 = 156.47D;
Double type sonlarni ~15-17 xona aniqlikda ko'rsatib beradi.
Rasmdan ko'rishimiz mumkinki, sonni print qilyotgan payti 30 xona aniqlikda bo'lsin deyilgan, lekin javob 15 xona aniqlik bilan (.299999999999999) chiqyapti.
-
decimal
: bu type bilan yaratilgan o'zgaruvchi xotiradan 16 byte joy egallaydi (bu 128 bitga teng). Decimal typedan foydalanganda sonning oxiriga m yoki M suffiksi yoziladi:
decimal masofa = 165.78m;
decimal masofa2 = 156.47M;
Decimal type sonlarni ~28-29 xona aniqlikda ko'rsatib beradi.
Xulosa
- Float typeni kasr sonlar ustida amallar bajarganda va aniqlik muhim bo'lmaganda ishlatish tavsiya etiladi.
- Double typeni sonlar juda katta bo'lganda va juda kichik kasr sonlar uchun ishlatish tavsiya etiladi.
- Decimal typeni kasr sonning aniqligi muhim bo'lganda ishlatiladi. Masalan decimal typeni oyliklarni hisoblashda, pul o'tkazmalari bilan bog'liq jarayonlarda ishlatiladi.