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

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

در این مقاله بصورت کامل روش های گرد کردن عدد در #C به بالا و پایین و حد وسط MidpointRounding (زمانی که می خواهید عدد شما دارای اعشار ۰٫۵ باشد) را بررسی می کنیم و با حل مثال هایی کارکرد حالت های مختلف تابع 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);

 

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

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

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

 

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

 تابع MidpointRounding.ToEven :

در صورتیکه مقدار اعشاری عددی میانی (۵ و ۵۰ و ۵۰۰ و ۵۰۰۰ و ….) باشد و رقم ماقبل آخر اعشار فرد باشد، رو به بالا گرد خواهد شد و در صورتیکه رقم ما قبل آخر اعشار زوج باشد، بدون تغییر باقی خواهد ماند (۳٫۷۵ به ۳٫۸ و ۳٫۶۵ به ۳٫۶ گرد می‌ شود.)

تابع MidpointRounding.AwayFromZero :

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

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

// The example displays the following output:
// ۲٫۱۲۵ --> 2.13
// ۲٫۱۳۵ --> 2.13
// ۲٫۱۴۵ --> 2.15
// ۳٫۱۲۵ --> 3.13
// ۳٫۱۳۵ --> 3.14
// ۳٫۱۴۵ --> 3.15
This code example produces the following results:

 ۳٫۴ = Math.Round( 3.45, 1)
-۳٫۴ = Math.Round(-3.45, 1)

 ۳٫۴ = Math.Round( 3.45, 1, MidpointRounding.ToEven)
 ۳٫۵ = Math.Round( 3.45, 1, MidpointRounding.AwayFromZero)

-۳٫۴ = Math.Round(-3.45, 1, MidpointRounding.ToEven)
-۳٫۵ = Math.Round(-3.45, 1, MidpointRounding.AwayFromZero)

 

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

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