DEV Community

Cover image for Kasr sonlar farqlari
Shohboz Xurramov
Shohboz Xurramov

Posted on

Kasr sonlar farqlari

C# da Kasr sonlar ustida amallar bajarish uchun 3 ta data type mavjud bular float, double , decimal.
bular nimasi bilan bir biridan farqlanadi😒.
float < double < decimal
kabi tushunsak bo'ladi 😂. Data Type lar Stack xotirasida saqlanadi gap float, double, decimal haqida ketmoqda boshqa data type emas.😎
Bularni asosiy farqi nomida 3 xil nom yani float, double, decimal 🥶
albatda bu xazil lekin rostan ham nomi har xil unda ketdik asosiy farqlarini va boshqa xususiyatlarini sanaymiz.

.-> .(nuqta) dan keyin aniqlilik kasr qisimni hisoblashdagi aniqlilik, sonni butun qismidan keyingi qoldiqni hisoblash dib tushunsak bo'ladi. Masalan 2.7178238148129410931371473141920 menshu son ustida farqlarni tushuntirib beraman 2 bu butun qismi yani faqat bizga 2 kerak bulgan da buni integer data type ga saqlasak bo'lar edi afsuski bizga . (nuqtadan keyin) malum bir xona aniqlikda natija kerak bulsa bizni xizmatga float, double, decimal keladi.

1--> float aniqlilik kursatkichi . dan keyin 6~9 tagacha sonni aniq ko'rsatadi hisoblash jarayonida.

bu DataTypelarni maksimal, minimal va default qiymatlari bor shu sonlardan oshmasligi kerak bizni hisob kitoblarimiz agar oshib ketsa xatoliklar kupayadi bu xatolik ham ikki xil bo'ladi.
//Max
Console.WriteLine(float.MaxValue);
Maksimal qiymati:3.402823E+38
//Min
Console.WriteLine(float.MinValue);
Minimal qiymati:-3.402823E+38
//Default
float number1Default = default;
Console.WriteLine(number1Default);
Default qiymati: 0;

Xotiradan 4 Bytes joy egallaydi😁.

2--> double aniqlilik kursatkichi . dan keyin 15~17 tagacha sonni aniq ko'rsatadi hisoblash jarayonida.

//Max
Console.WriteLine(double.MaxValue);
Maksimal qiymati:1.79769313486232E+308
//Min
Console.WriteLine(double.MinValue);
Minimal qiymati:-1.79769313486232E+308
//Default
double number1Default = default;
Console.WriteLine(number1Default);
Default qiymati: 0;

Xotiradan 8 Bytes joy egallaydi😁.

3--> decimal aniqlilik kursatkichi . dan keyin 28~29 tagacha sonni aniq ko'rsatadi hisoblash jarayonida.

//Max
Console.WriteLine(decimal.MaxValue);
Maksimal qiymati: 79228162514264337593543950335
//Min
Console.WriteLine(decimal.MinValue);
Minimal qiymati:-79228162514264337593543950335
//Default
Image description
decimal number1Default = default;
Console.WriteLine(number1Default);
Default qiymati: 0;

Xotiradan 16 Bytes joy egallaydi😁.

--------1-> data type saqlash chegarasidan chiqib ketsa kompilyator xatoni kursatadi .
---------2-> .(nuqtadan) keyin aniqlikni oshirib yuborsak xatolik kursatmaydi runtime da ham kompile timeda ham. shunchaki natijada aniqlilik yuqoladi va xato raqamlar chop etiladi.

----------------#### Qiziqarli malumot ####-------------------------

misol uchun:
float num1 = 12.321322342433543636f; --->f harfi float dan olingan
double num2 = 13.1341424123124325d; ---> d harfi double dan olingan
decimal num3 = 21.2341324325235345346m; --> m harfi money dan olingan pulga bog'liq jarayonlarda qurqmasdan decimal ishlating🤩.

---- xona birliklarni aniqligiga misollar
//Float
float number1 = 112.311313131398582372121212312f;
//Double
double number2 = 112.311313131313494121295752612121212d;
//Decimal
decimal number3 = 112.31131313131312931249572312121212312m;

Console.WriteLine($"float: {number1:F10}");
Console.WriteLine($"double: {number2:F20}");

Console.WriteLine($"decimal: {number3:F30}");

Console oynasidagi natija:->

float: 112.3113000000
double: 112.31131313131300000000
decimal: 112.311313131313129312495723120000

:F10, :F20, :F30 nima ekanligi qiziq bo'lsa bu Standard numeric format strings -> https://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings
shu linkda to'liq yozilgan.

Diqqat savol:
1.Double va double ni qanday farqi bor (katta kichik d harfida yozilgan)?
2.Decimal va decimal ni qanday farqi bor (katta kichik d harfida yozilgan)?
float o'zi float , float xullas Leginda😎.

Top comments (0)