گرد کردن عدد در #C به بالا و پایین و حد وسط

در این مقاله بصورت کامل روش های گرد کردن عدد در #C به بالا و پایین و حد وسط MidpointRounding (زمانی که می خواهید عدد شما دارای اعشار 0.5 باشد) را بررسی می کنیم و با حل مثال هایی کارکرد حالت های مختلف تابع Round را بررسی می کنیم. از روش های زیر می توانید در تمام پروژه های Net. خود از جمله Asp.net و Xamarin و غیره استفاده کنید.

گرد کردن عدد در #C

 

توابع گرد کردن به عدد صحیح بالا و پایین

با استفاده از روش های Math.round و Math.ceil و Math.floor در برنامه نویسی دات نت می توانیم اعداد را به شکل های زیر رند کنیم:

  • روش Math.round : گرد کردن به سمت نزدیکترین عدد صحیح.
  • روش Math.ceil : گرد کردن به سمت بالا.
  • روش Math.floor : گرد کردن به سمت پایین.
float farazgar = 1.5;
 
---------------|گرد کردن به بالا|-------------

double up1 = Math.Ceiling(farazgar);    // روش اول
double up2 = Math.Round(farazgar, 0);   // روش دوم
 
---------------|گرد کردن به پایین|-------------
 
double down1 = Math.Floor(farazgar);

 

جلوگیری از صفر شدن عدد برای اعداد اعشاری زیر 1

یکی از مشکلاتی که شاید دوست نداشته باشید پیش بیاید، این است که تعیین کنید اگر عدد نزدیک به 0 بود، 0 نشود. بدین منظور از روش زیر استفاده می‌ کنیم (جلوتر توضیحات مفصل تری می دهیم)

float farazgar = 0.15;
double down1 = Math.Round(farazgar, MidpointRounding.AwayFromZero);

 

گرد کردن عدد در #C در حالت حد وسط MidpointRounding

 تابع MidpointRounding.ToEven :

در صورتیکه مقدار اعشاری عددی میانی (5 و 50 و 500 و 5000 و ….) باشد و رقم ماقبل آخر اعشار فرد باشد، رو به بالا گرد خواهد شد و در صورتیکه رقم ما قبل آخر اعشار زوج باشد، بدون تغییر باقی خواهد ماند (3.75 به 3.8 و 3.65 به 3.6 گرد می‌ شود.)

تابع MidpointRounding.AwayFromZero :

در صورتیکه مقدار اعشاری عددی میانی (5 و 50 و 500 و 5000 و ….) باشد، در این حالت همواره عمل گرد کردن به سمت رقم بعدی خواهد بود.

به مثال های زیر توجه کنید:

// The example displays the following output:
// 2.125 --> 2.13
// 2.135 --> 2.13
// 2.145 --> 2.15
// 3.125 --> 3.13
// 3.135 --> 3.14
// 3.145 --> 3.15
This code example produces the following results:

 3.4 = Math.Round( 3.45, 1)
-3.4 = Math.Round(-3.45, 1)

 3.4 = Math.Round( 3.45, 1, MidpointRounding.ToEven)
 3.5 = Math.Round( 3.45, 1, MidpointRounding.AwayFromZero)

-3.4 = Math.Round(-3.45, 1, MidpointRounding.ToEven)
-3.5 = Math.Round(-3.45, 1, MidpointRounding.AwayFromZero)

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *