گردن کردن عدد در سی شارپ
گردن کردن به بالا و پایین
در مواقع زیادی شاید دوست داشته باشیم اعدادی را به صورت گرد شده نشان دهیم! گرد کردن در ریاضیات به این معنی است که عدد اعشاری را به عدد 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 به معنای کف بوده و کف یک عدد را برمیگرداند؛ که همان تعریف گرد کردن به پایین میباشد.
گرد خودکار
شاید بخواهیم گرد شدن در صورت نزدیک بودن به بالا یا پایین خودکار صورت گیرد! یعنی مثلا 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);
Ceiling سقف خونه از داخله و roof سقف خونه از بیرون . بخاطر همین متدی به اسم roof نداریم
دیدگاه جالبیه ??
Math.Round(x,0); باعث گرد شدن به سمت بالا نمیشه گل پسر
بلکه اعشار رو از بین میبره
دوست عزیز اسم متد Round هستش که همون گرد کردن میشه. تعریف شما هم از کارکرد متد درسته فرقی نداره