PDA

View Full Version : سوال: رند کردن اعداد



sadeghlinux
چهارشنبه 21 آبان 1399, 16:05 عصر
سلام دوستان

من یه تکست باکس دارم که داخلش یه مبلغی رو وارد میکنم

بعد در تکست باکس دوم درصد رو وارد میکنم که مثلا 20 درصد اضافه بشه (درصد برای اعداد مختلف تغییر می کنه) و در تکست باکس سوم مبلغ نهایی نشون داده میشه.

حالا من کاری که میخام بکنم اینه که وقتی به مبلغ پایه 20 درصد اضافه میکنم عدد نهایی عدد رُند بشه، مثلا وقتی میشه 250200 تومان من میخام بشه 250000 تومان و یا اگه شد 296920 تومان که میخام بشه 270000 تومان
بهتره بگم زیر 500 تومان گرد بشه پایین بالای 500 تومان گرد بشه بالا

" در ضمن تمامی اعداد صحیح می باشد و اعداد اعشاری استفاده نمی کنم "
لطفا راهنمایی بفرمایید یا اگه قطعه کدی دارید رو برام بفرستید
ممنون

the king
چهارشنبه 21 آبان 1399, 17:05 عصر
سلام دوستان

من یه تکست باکس دارم که داخلش یه مبلغی رو وارد میکنم

بعد در تکست باکس دوم درصد رو وارد میکنم که مثلا 20 درصد اضافه بشه (درصد برای اعداد مختلف تغییر می کنه) و در تکست باکس سوم مبلغ نهایی نشون داده میشه.

حالا من کاری که میخام بکنم اینه که وقتی به مبلغ پایه 20 درصد اضافه میکنم عدد نهایی عدد رُند بشه، مثلا وقتی میشه 250200 تومان من میخام بشه 250000 تومان و یا اگه شد 296920 تومان که میخام بشه 270000 تومان
بهتره بگم زیر 500 تومان گرد بشه پایین بالای 500 تومان گرد بشه بالا

" در ضمن تمامی اعداد صحیح می باشد و اعداد اعشاری استفاده نمی کنم "
لطفا راهنمایی بفرمایید یا اگه قطعه کدی دارید رو برام بفرستید
ممنون

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged
Dim n As Decimal, p As Decimal
If Decimal.TryParse(TextBox1.Text, n) AndAlso Decimal.TryParse(TextBox2.Text.Replace("%", ""), p) Then
TextBox3.Text = Math.Round(n * (p / 100) / 10000) * 10000
Else
TextBox3.Text = ""
End If
End Sub

sadeghlinux
چهارشنبه 21 آبان 1399, 20:16 عصر
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged
Dim n As Decimal, p As Decimal
If Decimal.TryParse(TextBox1.Text, n) AndAlso Decimal.TryParse(TextBox2.Text.Replace("%", ""), p) Then
TextBox3.Text = Math.Round(n * (p / 100) / 10000) * 10000
Else
TextBox3.Text = ""
End If
End Sub


ممنونم از پاسخگویی شما بزرگوار

من کد رو وارد برنامه کردم

داخل برنامه قیمت پایه 48000 زدم، درصد رو 61 وارد کردم مبلغ نهایی شد 77280

حالا میخام این 77280 بشه 77000 تومان ! و به عنوان مثال اگه یه درصد دیگه وارد کردم و عدد نهایی شد 77980 بشه 78000 !

راه حلی هست ؟

the king
چهارشنبه 21 آبان 1399, 20:59 عصر
ممنونم از پاسخگویی شما بزرگوار

من کد رو وارد برنامه کردم

داخل برنامه قیمت پایه 48000 زدم، درصد رو 61 وارد کردم مبلغ نهایی شد 77280

حالا میخام این 77280 بشه 77000 تومان ! و به عنوان مثال اگه یه درصد دیگه وارد کردم و عدد نهایی شد 77980 بشه 78000 !

راه حلی هست ؟
با توصیفی که شما می کنید فکر نکنم کدی که وارد برنامه کرده اید شباهتی به کدی داشته باشه که من ارائه کردم.
در هر صورت شما 77280 حاصل رو که بدست آورده اید ابتدا تقسیم بر 1000 کنید، بعد Round کنید و بعد ضربدر 1000 کنید تا نتیجه 77000 بشه، یعنی اگر مقدار m رو داشتید :
1000 * (m / 1000.0)Math.Round

sadeghlinux
جمعه 23 آبان 1399, 00:19 صبح
با توصیفی که شما می کنید فکر نکنم کدی که وارد برنامه کرده اید شباهتی به کدی داشته باشه که من ارائه کردم.
در هر صورت شما 77280 حاصل رو که بدست آورده اید ابتدا تقسیم بر 1000 کنید، بعد Round کنید و بعد ضربدر 1000 کنید تا نتیجه 77000 بشه، یعنی اگر مقدار m رو داشتید :
1000 * (m / 1000.0)Math.Round

ممنونم بابت راهنمایی دقیق شما

با این روش حل شد