الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحويل رقم عشري طويل الى رقمين بدون تقريب

مغلق
بدأه cdcase في 24 أبريل 2007 · 26 رد · 4,516 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحباااا

اريد تحويل رقم عشري طويل الى رقمين بدون تقريب على سبيل المثال

من الرقم 1.2398765 الى الرقم 1.23 بدون تقريب

اعملها ازاى ارجو الافادة

تحياتى

تم تعديل هذه المشاركة بواسطة cdcase في 24 أبريل 2007 في 12:06

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#2

عامل العدد على أنه عدد ثم استخدم subString كالتالي:

 Dim str As String = TextBox1.Text.ToString

		Dim nStr As String = str.Substring(0, 4)
#3
Scoool كتب:
عامل العدد على أنه عدد ثم استخدم subString كالتالي:

 Dim str As String = TextBox1.Text.ToString

		Dim nStr As String = str.Substring(0, 4)

مرحبا

شكرا على المساعدة

ولكن هذا الكود يقوم بإستخلاص اول 4 ارقام من العدد ويتعامل مع العلامة العشرية على انها رقم

مثال

لو افترض كما فى السابق انى اريد تحويل 1.2398765 الى الرقم 1.23

لو استخدمت الكود بتاعك سيكون الناتج فعلا صحيح ولكن تعالى نغير القيمة

الى

54.2398765 الناتج سيكون
 54.2 
ولو غيرنا القيمة تانى الى
 542.2398765 الناتج سيكون
542.

وهذا غير طبيعي

ارجو الافادة

تم تعديل هذه المشاركة بواسطة cdcase في 24 أبريل 2007 في 16:20

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#4

نإخد هدا المثال ..

TextBox1.Text = (10 / 3).ToString("#.0000")

و ستكون النتيجة 0.33 ... وهكدا يمكنك من التحكم في عدد الأرقام بعد الفاصلة بتحديد عدد 0 ... فإدا كتبنا "#.0000" في مكان "#.00" ستكون النتيجة 0.3333

و السلام عليكم ...

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#5

مشكورين يا إخوانى جزاكم الله عنا كل خير

أخى Fikou-sama

ان التعامل مع النص بهذه سيقوم بالتقريب لو بتتعامل مع الاقام الكبيرة

جرب تضرب ملايين بكسور مع الاف بكسور

تم تعديل هذه المشاركة بواسطة cdcase في 24 أبريل 2007 في 17:45

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#6

الظاهر انك بتعمل برنامج مبيعات وعاوز تستفيد من العملة عند الدفع ..

صح .. ;)

#7
Scoool كتب:
الظاهر انك بتعمل برنامج مبيعات وعاوز تستفيد من العملة عند الدفع ..

صح .. ;)

:lol: لا مش بعمل برنامج مبيعات ولا بستفيد من العملة عند الدفع ..

بتعلم التعامل مع الارقام للاستخدام البرمجى المحاسبي ;)

تم تعديل هذه المشاركة بواسطة cdcase في 24 أبريل 2007 في 17:42

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#8

يمكنك استخدام الكود التالي ...

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim Nber = Val(TextBox1.Text)

Dim Param As String = ""

For i As Integer = 1 To Nber

Param += "0"

Next

If Param.ToString <> "" Then

Param = "#." & Param

TextBox2.Text = (100 / 6).ToString(CStr(Param))

Else

TextBox2.Text = (100 / 6).ToString

End If

End Sub

الدي يسمح لك بتحديد عدد اللأرقام بعد الفاصلة بسهولة .. و كل ما عليك فعله هو إدخال عدد الأرقام التي تريد في TextBox1 .. و هدا ما فهمته من طلبك

[/

b]

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#9

أخ cdcase

تفضل مني هذا الحل (انا برمجته و جربت كل الحالات)

Dim nb, nbresult As Double

Dim p As Integer

Dim snb As String

nb = 1.2398765

snb = CStr(nb)

p = InStr(1, snb, ".")

If p = 0 Then

nbresult = nb

Else

If Len(Mid(snb, p)) >= 3 Then

nbresult = Left(snb, p - 1) + snb.Substring(p - 1, 3)

Else

nbresult = nb

End If

End If

instr :تبحث عن الفاصلة في حال لا توجد يؤخذ الرقم كما هو في حال وجدت الفاصلة يأخذ رقمين اذا كان يوجد رقمين أو أكثر بعد الفاصلة

أما اذا عدد الأرقام بعد الفاصلة 1 فيأخذه كما هو

مع تمنياتي لك بالتوفيق

--------------------------------------------------------------------------------

على قدر أهل العزم تأتي العزائم وتأتي على قدر الكرام المكارم

وتعظم في عين الصغير صغارها وتصغر في عين العظيم العظائم

#10

مرحبا إخوانى فى الله mirna moukhtar و Fikou-sama

أقدر مساعدتكم لى ولكنى اواجه مشاكل فى التطبيق فهل لى ان اطمع بمثال مرفق

تحياتى

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#11

المثال في المرفقات .. أرجو أن يكون الإجابة على تساؤلك ...

WindowsApplication1.zip

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#12

كيف يمكننا تنزيل ملف مرفق من خلال المنتدى

#13
Fikou-sama كتب:
المثال في المرفقات .. أرجو أن يكون الإجابة على تساؤلك ...

شكرا يا أخى ولكن مازلت اشتغل ب 2003

ارجو تحويله

mirna moukhtar كتب:
كيف يمكننا تنزيل ملف مرفق من خلال المنتدى

انظر الصورة

post-73046-1177579915_thumb.jpg

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#14

أخ CDCASE

يبدو ان سؤالي غير واضح لك

اريد ان اعمل UPLOAD لملف عندي على المنتدى

شكرا

#15

أخى العزيز

هذا الكود يفعل لك ما تريد بالضبط

بل انه يقوم بتحويل الكسرالعشرى الى رقمين أوالى ثلاثة أو الى أربعة أو---------(على حسب ما تريد (أى على حسب ما تضع قيمة N))

Private Sub Command3_Click()

Dim X, X1, Y As Single

Dim I, N As Integer

X = Val(Text1.Text)

Rem"هى الرقم المطلوب تحويله X"

N = Val(Text2.Text)

Rem"هى عدد الأرقام العشريةالمطلوبة N"

X1 = X * 10 ^ N

I = Int(X1)

Y = I / 10 ^ N

Print"الرقم بعد التحويل"; Y

Text3.Text = Val(Y)

End Sub

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــة ،،

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#16
islambase@yahoo.com كتب:
أخى العزيز

هذا الكود يفعل لك ما تريد بالضبط

بل انه يقوم بتحويل الكسرالعشرى الى رقمين أوالى ثلاثة أو الى أربعة أو---------(على حسب ما تريد (أى على حسب ما تضع قيمة N))

Private Sub Command3_Click()

Dim X, X1, Y As Single

Dim I, N As Integer

X = Val(Text1.Text)

Rem"هى الرقم المطلوب تحويله X"

N = Val(Text2.Text)

Rem"هى عدد الأرقام العشريةالمطلوبة N"

X1 = X * 10 ^ N

I = Int(X1)

Y = I / 10 ^ N

Print"الرقم بعد التحويل"; Y

Text3.Text = Val(Y)

End Sub

أنظر الصورة

post-73046-1177609548_thumb.jpg

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#17
mirna moukhtar كتب:
أخ CDCASE

يبدو ان سؤالي غير واضح لك

اريد ان اعمل UPLOAD لملف عندي على المنتدى

شكرا

أنظر الصورة

post-73046-1177609658_thumb.jpg

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#18

أخي أنا أستخدم VB.NET 2005 و لم أستخدم VB.NET 2003 .. و لكن أعرف أن هناك بعض الإختلافات بين الإصدارتين و لللأسف ليس لدي خلفية عن هده الإختلافات ... و آسف لأنك لم تجد ضالتك عندي .. !!

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#19

أخى العزيز

هذا الكود يفعل لك ما تريد بالضبط

بل انه يقوم بتحويل الكسرالعشرى الى رقمين أوالى ثلاثة أو الى أربعة أو---------(على حسب ما تريد (أى على حسب ما تضع قيمة N))

Private Sub Command3_Click()

Dim X, X1, Y As Single

Dim I, N As Integer

(X = Val(Text1.Text

Rem"هى الرقم المطلوب تحويله X"

(N = Val(Text2.Text

Rem"هى عدد الأرقام العشريةالمطلوبة N"

X1 = X * 10 ^ N

(I = Int(X1

Y = I / 10 ^ N

Print"الرقم بعد التحويل"; Y

(Text3.Text = Val(Y

End Sub

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــة ،،

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#20
اقتباس
أخي أنا أستخدم VB.NET 2005 و لم أستخدم VB.NET 2003 .. و لكن أعرف أن هناك بعض الإختلافات بين الإصدارتين و لللأسف ليس لدي خلفية عن هده الإختلافات ... و آسف لأنك لم تجد ضالتك عندي .. !!

أخى Fikou-sama

يكفينى جدا محاولاتك لمساعدتى ولا تتأسف نحن إخوة

islambase@yahoo.com كتب:
أخى العزيز

هذا الكود يفعل لك ما تريد بالضبط

بل انه يقوم بتحويل الكسرالعشرى الى رقمين أوالى ثلاثة أو الى أربعة أو---------(على حسب ما تريد (أى على حسب ما تضع قيمة N))

Private Sub Command3_Click()

Dim X, X1, Y As Single

Dim I, N As Integer

(X = Val(Text1.Text

Rem"هى الرقم المطلوب تحويله X"

(N = Val(Text2.Text

Rem"هى عدد الأرقام العشريةالمطلوبة N"

X1 = X * 10 ^ N

(I = Int(X1

Y = I / 10 ^ N

Print"الرقم بعد التحويل"; Y

(Text3.Text = Val(Y

End Sub

لماذا تكرر نفس الكود السابق يا أخى العزيز

أنه لم يعمل معى اعتقد انه يحتاج الى تعديل

تحياتى

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#21

أنا لم أقرأ ردود الأخوه ولا أعرف ان كانت المشكله اتحلت ولا لأ بس اللي عايز تعمله بكل بساطه انك تضرب الرقم في 100 وبعد كده تجيب الـ Integer بتاعه وبعد كده تقسم علي 100 مره تانية :)

#22
hazzoom كتب:
أنا لم أقرأ ردود الأخوه ولا أعرف ان كانت المشكله اتحلت ولا لأ بس اللي عايز تعمله بكل بساطه انك تضرب الرقم في 100 وبعد كده تجيب الـ Integer بتاعه وبعد كده تقسم علي 100 مره تانية :)

هية فكرة جميلة ولكن ليست كاملة لان الكود بالصورة يقوم بالتقريب أيضا وديه نفس مشكلتي وانا عايز أعمل cut لكل الارقام العشرية اللى بعد الرقم العشري التانى

أرجو الافادة

post-73046-1177635407_thumb.jpg

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#24

إن شاء الله هذا الكود يفي بالغرض

قم بإضافة 2 تكست بوكس (TextBox1, TextBox2)

وهذا الكود

   Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
		If Me.TextBox1.Text.LastIndexOf(".") <> -1 Then
			Dim NumberOfChrWithPoint As Integer = Me.TextBox1.Text.Substring(Me.TextBox1.Text.LastIndexOf(".")).Length
			If NumberOfChrWithPoint > 3 Then
				Dim I As Integer = Me.TextBox1.Text.LastIndexOf(".") + 1
				Me.TextBox2.Text = Me.TextBox1.Text.Substring(0, I + 2)
			Else
				Me.TextBox2.Text = Me.TextBox1.Text
			End If
		Else
			Me.TextBox2.Text = Me.TextBox1.Text
		End If
	End Sub
End Class

بالمناسبة أخ حازم كلام الأخ cdcase صحيح بالنسبة للكود الذي ذكرته, فهو يعمل Rounding

تم تعديل هذه المشاركة بواسطة حمزة في 27 أبريل 2007 في 09:50

اقتباس
How to get experience without a job, and how to get a job without experience
#25
اقتباس
بالمناسبة أخ حازم كلام الأخ cdcase صحيح بالنسبة للكود الذي ذكرته, فهو يعمل Rounding

يا حمزه لو ركزت في الكلام هتلاقي اني مكتبتش كود خالص الأخ cdcase هو اللي كتب الكود مش أنا !

post-46090-1177660601_thumb.png

تم تعديل هذه المشاركة بواسطة hazzoom في 27 أبريل 2007 في 15:06

هذا الموضوع مغلق.

مواضيع مشابهة