DEV Community

Javohir
Javohir

Posted on

C# da kasr sonlar

Kasr sonlar deb sonlarning butun va kasr qismi bor sonlarga aytiladi va nuqta bilan ajratiladi. Bunda nuqtadan oldingi qismi butun qismi nuqtadan keyingi qismi kasr qismi xisoblanadi. Kasr sonlar kundalik hayotimizda ham beixtiyor juda ko'p ishlatiladi.
Misol:

  • vazn: 65.5 kg // 65->butun qism 5->kasr qism
  • harorat 36.6 °C va hokazo ...

Shunday ekan kasr sonlar dasturlash tillarida ham juda muhim xisoblanadi va c# ham bundan mustasno emas.

Kasr sonlar C# da 3 turga bo'linadi. Bular float, double va decimal.

C# type ** Approximate range** Precision Size
float ±1.5 x 10−45 to ±3.4 x 1038 ~6-9 digits 4 bytes
double ±5.0 × 10−324 to ±1.7 × 10308 ~15-17 digits 8 bytes
decimal ±1.0 x 10-28 to ±7.9228 x 1028 ~28-29 digits 12 bytes

float: Float ma'lumot turi xotiradan 4 bytes yani 32 bit joy egallaydi va ±1.5 x 10−45 to ±3.4 x 1038 shu oraliqda sonlarni qabul qiladi va 6-9 son aniqlikda ishlaydi. Buni .NET dagi klasi System.Single deyiladi. Float ni ifodalash uchun dasturda f yoki F bilan belgilanadi.
Masalan: float kasr = 2.71f;
Image description
Suratdagi misolda ko'rib turganingizdek 10 xona aniqlikda chop etgan edim. Ammo, biz yuqorida o'rganganimizdek float 6 xona aniqlikda ishladi va keyin ihtiyoriy sonlarni chop qilib yubordi.

double: Double ma'lumot turi xotiradan 8 bytes yani 64 bit joy talab qiladi va ±5.0 × 10−324 to ±1.7 × 10308 shu oraliqda sonlarni qabul qiladi va 15-17 son aniqlikda ishlaydi. Buni .NET dagi klasi System.Double deb ataladi. Bu ma'lumot turi c# dasturlash tilida kasrlarni ifodalash uchun ishlatiladi, shuning uchun double ni ifodalash uchun biror belgidan foydalanish kerak bo'lmaydi.
Misol: double vazn = 65.5;

Image description
Bu misolda double ni aniqlik darajasini isbotlash uchun 20 xona aniqlikda chop etishga urinib ko'rdik ammo, 15 xona aniqlikdan keyin dastur ihtiyoriy 5 ta sonni chop etdi.

decimal: Decimal ma'lumot turi bo'lsa xotiradan 12 bytes joy egallaydi va ±1.0 x 10-28 to ±7.9228 x 1028 shu oraliqda sonlarni qabul qiladi va 28-29 son aniqlikda ishlaydi. Buni .NET dagi klasi System.Decimal deb yuritiladi. Bu ma'lumot turini ifodalash uchun m harfidan foydalanish kerak, bu m-money so'zidan olingan. Decimal ma'lumot turi moliya, iqtisod va shunga o'xshagan muhim soxalarda foydalaniladi va dasturda quydagicha foydalaniladi.
Masalan: decimal coin = 4.1546m;

Image description
Eng yuqori aniqlikga ega decimal ma'lumot turini 30 xona aniqlikda chop etmoqchi bo'ldik. Lekin, yana qolgan misollardagidek holat takrorlandi ya'ni 28 xona aniqlikdan so'ng 2 ta ihtiyoriy sonni chop etdi.

Top comments (1)

Collapse
 
johnnysenior profile image
JohnnySenior

Very good. Keep going