View Full Version : سوال: رند کردن اعداد
sadeghlinux
چهارشنبه 21 آبان 1399, 17:05 عصر
سلام دوستان
من یه تکست باکس دارم که داخلش یه مبلغی رو وارد میکنم
بعد در تکست باکس دوم درصد رو وارد میکنم که مثلا 20 درصد اضافه بشه (درصد برای اعداد مختلف تغییر می کنه) و در تکست باکس سوم مبلغ نهایی نشون داده میشه.
حالا من کاری که میخام بکنم اینه که وقتی به مبلغ پایه 20 درصد اضافه میکنم عدد نهایی عدد رُند بشه، مثلا وقتی میشه 250200 تومان من میخام بشه 250000 تومان و یا اگه شد 296920 تومان که میخام بشه 270000 تومان
بهتره بگم زیر 500 تومان گرد بشه پایین بالای 500 تومان گرد بشه بالا
" در ضمن تمامی اعداد صحیح می باشد و اعداد اعشاری استفاده نمی کنم "
لطفا راهنمایی بفرمایید یا اگه قطعه کدی دارید رو برام بفرستید
ممنون
the king
چهارشنبه 21 آبان 1399, 18: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, 21: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, 21:59 عصر
ممنونم از پاسخگویی شما بزرگوار
من کد رو وارد برنامه کردم
داخل برنامه قیمت پایه 48000 زدم، درصد رو 61 وارد کردم مبلغ نهایی شد 77280
حالا میخام این 77280 بشه 77000 تومان ! و به عنوان مثال اگه یه درصد دیگه وارد کردم و عدد نهایی شد 77980 بشه 78000 !
راه حلی هست ؟
با توصیفی که شما می کنید فکر نکنم کدی که وارد برنامه کرده اید شباهتی به کدی داشته باشه که من ارائه کردم.
در هر صورت شما 77280 حاصل رو که بدست آورده اید ابتدا تقسیم بر 1000 کنید، بعد Round کنید و بعد ضربدر 1000 کنید تا نتیجه 77000 بشه، یعنی اگر مقدار m رو داشتید :
1000 * (m / 1000.0)Math.Round
sadeghlinux
جمعه 23 آبان 1399, 01:19 صبح
با توصیفی که شما می کنید فکر نکنم کدی که وارد برنامه کرده اید شباهتی به کدی داشته باشه که من ارائه کردم.
در هر صورت شما 77280 حاصل رو که بدست آورده اید ابتدا تقسیم بر 1000 کنید، بعد Round کنید و بعد ضربدر 1000 کنید تا نتیجه 77000 بشه، یعنی اگر مقدار m رو داشتید :
1000 * (m / 1000.0)Math.Round
ممنونم بابت راهنمایی دقیق شما
با این روش حل شد
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.