روند کردن یک عدد به صورت بالا و پایین
سلام دوستان، من میخواهم یک عدد تصاوفی به صورت متغیر Long که میتونه بین 1 تا 500000 باشه رو روند کنم اما شرایط رند کردن عدد باید به این صورت باشه که فرضا در رند پایین اگر عدد تصادفی 830 یا مثلا 840 بود اونرو 800 نشون بده و یا در رند بالا اونو 850 نشون بده. در حقیقت میخواهم یک جورایی تناسب قیمت ایجاد کنم که از شر پول خرد خلاص بشم. فرضا در برنامه ای که نوشتم کاربر با خرید و درصد تخفیفی که میگره 8320 تومان هزینه تمام میشه که یک جورایی میخواهم برنامه این قابلیت رو داشته باشه که پول خرد رو از بین ببره حداقل تا 50 تومان.
نقل قول: روند کردن یک عدد به صورت بالا و پایین
این دو رقم آخر رو گرد می کنه
شما باید 2 رقم اخر رو در بیاری - برای گرفتن یکان
int rem = rnd % 10;
بعد باید یکان رو حدق کنی تا بتونی رقم دوم از راست رو خارج کنی
// remove last digit
int tempRnd = rnd;
rnd/= 10;
یه عمل ریاضیه
این کد امیدوارم به کارت بیاد
int rnd = (new Random()).Next(1, 500000); if (rnd > 50)
{
// pop last digit
int rem = rnd % 10;
// remove last digit
int tempRnd = rnd;
tempRnd /= 10;
// pop second/last digit
int rem2 = tempRnd % 10;
rem = (rem2 * 10 ) + rem;
tempRnd = rnd;
if (rem < 50)
tempRnd -= rem;
else
tempRnd += (100 - rem);
MessageBox.Show("RndNum: " + rnd + "\nRounded: " + tempRnd);
}
نقل قول: روند کردن یک عدد به صورت بالا و پایین
بیا عزیزم:
long rnd = (new Random()).Next(1, 500000);
float roundBase = 50;
long Rounded = (long)(Math.Round(rnd / roundBase, 0) * roundBase);
MessageBox.Show("RndNum: " + rnd + "\nRounded: " + Rounded);
roundBase هر چی باشه نسبت به همون رند میشه
توی کد بالا نسبت به 50 رند میشه مثلا اگر می خوای کمتر از 500 تومن پول خرد نداشته باشه این متغیر رو بزار 500
به همین راحتی
نقل قول: روند کردن یک عدد به صورت بالا و پایین
کد بالا کد گرد کردن یا همون رند کردن بود
این کد رند پایین:
long rnd = (new Random()).Next(1, 500000);
float roundBase = 50;
long Rounded = (long)(Math.Floor(rnd / roundBase) * roundBase);
MessageBox.Show("RndNum: " + rnd + "\nRounded: " + Rounded);
این کد رند بالا:
long rnd = (new Random()).Next(1, 500000);
float roundBase = 50;
long Rounded = (long)(Math.Ceiling(rnd / roundBase) * roundBase);
MessageBox.Show("RndNum: " + rnd + "\nRounded: " + Rounded);