01-06-19, 11:58 AM
01-06-19, 12:41 PM
السلام عليكم اخي الكريم
تفضل هذا الكود الشطر الاول لتقريب الرقم والثاني لعدد الخانات بعد الفاصلة
كود :
' استخدم هذا الكود
TextBox2.Text = String.Format("{0:0}", Val(TextBox1.Text)) ' أولا لتقريب العدد
TextBox2.Text = FormatNumber(Val(TextBox2.Text), 3) 'ثم عدد الاصفار بعد الفاصلة01-06-19, 02:18 PM
(01-06-19, 12:41 PM)ابراهيم ايبو كتب : [ -> ]السلام عليكم اخي الكريمتفضل هذا الكود الشطر الاول لتقريب الرقم والثاني لعدد الخانات بعد الفاصلة
كود :
' استخدم هذا الكود
TextBox2.Text = String.Format("{0:0}", Val(TextBox1.Text)) ' أولا لتقريب العدد
TextBox2.Text = FormatNumber(Val(TextBox2.Text), 3) 'ثم عدد الاصفار بعد الفاصلة
الف شكر لاكن الرقم عندي ليس فيه فواصل انما على الشكل التالي 175550250 اريد تحويل كسر الالف الى الف 175551000 مع كل التقدير
01-06-19, 03:09 PM
السلام عليكم اخي الكريم
تفضل هذا الكود
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Nmbr As Decimal = Val(TextBox1.Text / 1000)
TextBox2.Text = String.Format("{0:0}", Nmbr) ' لتقريب العدد
TextBox2.Text *= 1000
End Sub01-06-19, 03:45 PM
(01-06-19, 03:09 PM)ابراهيم ايبو كتب : [ -> ]السلام عليكم اخي الكريمتفضل هذا الكودكود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Nmbr As Decimal = Val(TextBox1.Text / 1000)
TextBox2.Text = String.Format("{0:0}", Nmbr) ' لتقريب العدد
TextBox2.Text *= 1000
End Sub
مشكور اخي الكريم لكن في هذا الوقت وقبل ان ارى ردك الكريم صنعت دالة وتعمل جيدا ً ويسهل استعمالها داخل الفورم ما رايك ؟
كود :
Public Function XRound(c As Double) As Double
Dim B = Microsoft.VisualBasic.Right(c, 3), A = c - B
If B > 0 Then B = 0 : A += 1000
Return a + b
End Function02-06-19, 05:06 AM
الحمد لله والشكر لله
ولك اخي الكريم
رمضان كريم والعيد على الابواب
كل عام وانتم بخير
04-06-19, 04:46 PM
لاتمام الامر بصورة صحيحة وبدون اى اخطاء
فقط استخدم هذا الكود
كود :
Function RunNum(ByVal a As Integer, Optional b As Integer = 3)
Dim Len As Integer = a.ToString.Length
Dim Rn3 As Integer = Len - b + 1
Dim Sp1 As Integer = Mid(a, Rn3, Len) 'Right
Dim Sp2 As Integer = Mid(a, 1, Rn3 - 1) ' Left
If Sp1 >= CInt(5 & StrDup(b - 1, "0")) Then Sp2 += 1
Return Sp2.ToString() + StrDup(b, "0")
End Functionوعند الاستدعاء يكون بهذا الشكل كمثال
كود :
MsgBox(RunNum(150300))وظيفة الكود يقوم بجلب اخر 3 ارقام طبقاً لما هو محدد هنا بهذا الجزء
كود :
Optional b As Integer = 3حيث رقم 3 تشير الـ الالاف و 2 الى المئات و 1 تشير الى العشرات
طيب لو فجاء كنت محتاج التعامل مع هذا الكود
مرة فى زر بحيث يكون عشرات
كل ما عليك استخدام الكود بهذا الشكل
كود :
MsgBox(RunNum(150306, 1))واذا كان فى الزر الثاني كمثال لـ المئات
كود :
MsgBox(RunNum(150390, 2))وطبعة الحال اذا كان لـ المئات فيمكن استخدام الكود هكذا
كود :
MsgBox(RunNum(150300, 3))وايضاً بهذا الشكل
كود :
MsgBox(RunNum(150300))طيب لو كان المطلوب لاكثر من ثلك مثلاً لـ 4 ارقام او 5
كل الامر فقط انك تستخدم الكود مع تغيير الرق فقط الاخير كمثال
كود :
MsgBox(RunNum(150300, 4))كود :
MsgBox(RunNum(150300, 5))كود :
MsgBox(RunNum(150300, 6))اتمنى الصورة تكون واضحة تماماً
الكود بدوت اى اخطاء تماماً طوال ان الرقم صحيح بدون ارقام عشرية
بمعنى اذا كان الرقم المدخل بهذا الشكل
كود :
652131124فستجد ان الكود يقوم بجلب القيمة صحيحة بدون اى خطاء
واذا كان القيمة مثل
كود :
5434982.52فهنا ستجد ان الناتج الذى سيخرج قيمة صحيحة بدون اى كسور
فاذا كنت تريد اظهار الكسور فاتمنى التوضيح حتى اقوم بتعديل بسيط على الكود لاظهار الكسور
تحياتى لك
وتمنياتى لك التوفيق