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-1404, Jelsoft Enterprises Ltd.