گرد کردن عدد در سی شارپ (بالا و پایین)

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


در مواقع زیادی شاید دوست داشته باشیم اعدادی را به صورت گرد شده نشان دهیم! گرد کردن در ریاضیات به این معنی است که عدد اعشاری را به عدد Int (صحیح) نزدیکش تبدیل کنیم! این یعنی برای مثال، 1.5  بشود 1 یا 2! و یا 2.1 بشود 3 یا 2! به عبارتی گرد کردن یعنی حذف اعشار از عدد که در گرد کردن به پایین، اعشار کم می‌شود تا به عدد صحیح پایین خود برسد؛ ولی در گرد کردن به بالا، به عدد اعشار اضافه می‌شود تا به نزدیک‌ترین عدد صحیح بزرگتر از خود برسد.

گرد کردن به بالا

گرد کردن به بالا، یعنی مثلا عدد 1.5 بشود 2! از دو روش زیر می‌توان استفاده کرد:

float fullkade = 1.5f;

double up1 = Math.Ceiling(fullkade); // روش اول
double up2 = Math.Round(fullkade, 0); // روش دوم
int    up2 = Convert.ToInt32(fullkade); // روش سوم
  • روش اول: عدد float دریافت کرده و double برمی‌گرداند! ولی مقدار عدد بدون اعشار است.
  • روش دوم: همانند روش اولو است؛ ولی طولانی تر که نیاز به ورودی دوم 0 هم دارد.
  • روش سوم، عدد double دریافت کرده و int برمی‌گرداند.

گرد کردن به پایین

گرد کردن به پایین، یعنی مثلا عدد 1.5 بشود 1! از روش زیر می‌توان استفاده کرد:

float fullkade = 1.5f;
double down1 = Math.Floor(fullkade);

Floor به معنای کف بوده و کف یک عدد را برمی‌گرداند؛ که همان تعریف گرد کردن به پایین می‌باشد.

شدیدا برام سوال شده که چرا متدی به اسم Roof نداریم؟! 😀

گرد خودکار

شاید بخواهیم گرد شدن در صورت نزدیک بودن به بالا یا پایین خودکار صورت گیرد! یعنی مثلا 1.6 بشود 2 و 1.2 ببشود 1!

float fullkade = 1.6f;
double rounded = Math.Round(fullkade);

همان متد Round موجود در گرد کردن به بالا، ولی بدون ورودی 0 است! که مقدار 0 در آنجا باعث میشد تا یک عدد همیشه به بالا گرد شود! و همچنین اگر عدد در وسط، چیزی همانند 1.5 قرار داشته باشد، به سمت بالا گرد خواهد شد.

جلوگیری از گرد به 0

یکی از مشکلاتی که شاید دوست نداشته باشید پیش بیاید، این است که تعیین کنید اگر عدد نزدیک به 0 بود، 0 نشود! بدین منظوورین از روش زیر استفاده می‌کنیم:

float fullkade = 1.5f;
double down1 = Math.Round(fullkade, MidpointRounding.AwayFromZero);

پاسخ دهید

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

cp-codfk

نظرات ثبت شده 4 دیدگاه

    1. رضا کاربر مهمان گفت:

      Ceiling سقف خونه از داخله و roof سقف خونه از بیرون . بخاطر همین متدی به اسم roof نداریم

      11
      1. هادی اکبرزاده مدیر سایت گفت:

        دیدگاه جالبیه ??

    2. sowban کاربر مهمان گفت:

      Math.Round(x,0); باعث گرد شدن به سمت بالا نمیشه گل پسر
      بلکه اعشار رو از بین میبره

      12
      1. هادی اکبرزاده مدیر سایت گفت:

        دوست عزیز اسم متد Round هستش که همون گرد کردن میشه. تعریف شما هم از کارکرد متد درسته فرقی نداره

توضیحات پیشنهادی نظرات اشتراک