DEV Community

Kudrat
Kudrat

Posted on

Real numbers(Kasr sonlar)

Kasr sonlar deb butun va kasr qismiga ega bo'lgan sonlarga aytiladi.C# dasturlash tilida kasr sonlarni saqlovchi 3 ta data tip mavjud.Ular:float,double,decimal

Image description

Float

Xotiradan 4 bayt joy egallaydi va nuqtadan keyin 6 ta son aniqlikda ishlaydi.Kasr sonlarni float tipiga o'tkazishimiz uchun sonni ortidan f harfini qo'shish kifoya.

float son = 134.4566414f;
Enter fullscreen mode Exit fullscreen mode

Float ning .NET dagi tipi System.Single deb ataladi.

Double

Xotiradan 8 bayt joy egallaydi va nuqtadan keyin 15-17 ta son aniqlikda ishlaydi.Literallar doim double holatida turadi va uning ortidan hech qanaqa harf qo'shish shart emas.Uning .NET dagi klasi
System.Double

Decimal

Xotiradan 16 bayt joy egallaydi va nuqtadan keyin 28-29 ta son aniqlikda chop etadi.Kasr sonlarni decimal tipiga o'tkazish uchun uning ortidan Msonini qo'shishimiz kifoya.M soni Money so'zidan olingan.

decimal myMoney = 3000.544558m
Enter fullscreen mode Exit fullscreen mode

Decimalning klasi esa System.Decimal deb yuritiladi.Decimal odamlar tomonidan ixtiro qilingan va o'ta aniqlik talab etiladigan birliklar uchun ishlatiladi.Masalan:Binance ya'ni pul uchun ishlatiladi.

Garchi double float ga qaraganda nuqtadan keyin ko'proq sonlarni o'z ichiga olsa ham ,float nuqtadan keyingi 6 ta sonni doublega qaragandan aniqroq chop etadi.Masalan:

float son = .3f + .3f + .3f + .1f;
double son2 = (.3 + .3 + .3 + .1);
Console.WriteLine($"{son:f16}"); //output: 1.0000000000000000
Console.WriteLine($"{son2:f16}"); //output:0.9999999999999998

Enter fullscreen mode Exit fullscreen mode

Decimal ikkalasidan ham aniqroq ishlaydi.Ammo u 16 bayt joy egallaydi bu odatiy dastur uchun juda katta joy.

Parse va TryParse metodi kasr sonlar uchun ham ishlaydi

Console.Write("Kasr son kiriting:");
var kasrSon=Console.ReadLine();
var parsedSon=float.Parse(kasrSon);
Console.WriteLine(parsedSon);
Enter fullscreen mode Exit fullscreen mode

Top comments (0)