![]() |
|
[VB.NET] كيف أجعل البرنامج يقبل عمليات حسابية بأعداد عشرية - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : [VB.NET] كيف أجعل البرنامج يقبل عمليات حسابية بأعداد عشرية (/showthread.php?tid=36908) |
كيف أجعل البرنامج يقبل عمليات حسابية بأعداد عشرية - Necro PC - 13-11-20 بسم الله الرحمان الرحيم من فضلكم أنا مبتدئ لا أعرف شيء و أنا أصنع برنامج رياضيات و لكن عند إدخال الرقم بالفاصلة يظهر لي مايلي : Conversion from string "العدد الذي أدخلته" to type Integer is not valid و لا أعلم ماذا أفعل الكود الذي استخدمته هو : كود : Dim a,b,c as IntegerRE: كيف أجعل البرنامج يقبل عمليات حسابية بأعداد عشرية - got - 13-11-20 (13-11-20, 11:18 PM)Necro PC كتب : بسم الله الرحمان الرحيم من فضلكم أنا مبتدئ لا أعرف شيء و أنا أصنع برنامج رياضيات و لكن عند إدخال الرقم بالفاصلة يظهر لي مايلي : (11-11-20, 07:48 PM)Anas Mahmoud كتب : عرف المتغيرات من النوع Double وسيقبل العمليات RE: كيف أجعل البرنامج يقبل عمليات حسابية بأعداد عشرية - Necro PC - 14-11-20 سأجرب أخي الكريم و سأخبرك. هل يقبل Double جميع العمليات مثلا القسمة الضرب الجمع الطرح ؟ للأسف أخي الكريم لم يقبل هل من حل في أسرع وقت وشكرا لكم RE: كيف أجعل البرنامج يقبل عمليات حسابية بأعداد عشرية - Necro PC - 14-11-20 من فضلكم هل من حل في أسرع وقت RE: كيف أجعل البرنامج يقبل عمليات حسابية بأعداد عشرية - Anas Mahmoud - 14-11-20 حسنا اخي الحل باستخدام Double.Parse اعطني بعض الوقت اجهز لك مثال باستخدام Double.Parse تحول المدخلات النصية الى مدخلات من نوع Double كود : Dim a, b, c As Doubleولكنها تقوم برمي Exception وتوقف البرنامج اذا تم ادخال رقم غير صالح ، الافضل استخدام TryParse لتحكم اكبر وهي تعيد True اذا نجحت عمليه التحويل و False اذا فشلت العملية : كود : Dim a, b, c As Doubleوهذا موضوع عن التعامل مع TryParse : http://vb4arb.com/vb/showthread.php?tid=36426 الان يجب ان تفهم ان النوع Double هو نوع اوسع من Integer يعني بامكانه ان يقوم بما يقوم به Integer واكثر ، بالاضافة الى انه يدعم الارقام العشرية وهناك Single وهو نوع يقبل الارقام العشرية ايضا ولكن بمدى ( او دقة عشرية ) اقل من Double وايضا Decimal وهو يقبل الارقام العشرية ايضا ولكن بمدى كبير جدا جدا يستخدم للتعاملات المالية RE: كيف أجعل البرنامج يقبل عمليات حسابية بأعداد عشرية - salahalmasry - 15-11-20 (13-11-20, 11:18 PM)Necro PC كتب : بسم الله الرحمان الرحيم من فضلكم أنا مبتدئ لا أعرف شيء و أنا أصنع برنامج رياضيات و لكن عند إدخال الرقم بالفاصلة يظهر لي مايلي : Dim a, b, c As Double a = Val(TextBox1.Text) b = Val(TextBox2.Text) c = a / b TextBox3.Text = Format(Val©, "0.000") (15-11-20, 01:42 AM)salahalmasry كتب :"0.000" هتحدد لك عدد الارقام العشرية(13-11-20, 11:18 PM)Necro PC كتب : بسم الله الرحمان الرحيم من فضلكم أنا مبتدئ لا أعرف شيء و أنا أصنع برنامج رياضيات و لكن عند إدخال الرقم بالفاصلة يظهر لي مايلي : RE: كيف أجعل البرنامج يقبل عمليات حسابية بأعداد عشرية - Anas Mahmoud - 15-11-20 (15-11-20, 01:42 AM)salahalmasry كتب : Dim a, b, c As Double اعذرني اخي الكريم شكرا لمساعدتك جدا ولكن وجب التنبيه الى ان استخدام Val خطأ كبير في بيئة ال .Net لانه من الاصدارات القديمة من الفيجوال بيسيك ، وهي موجودة في الاصدارات الجديدة من باب التكامل مع البرامج التي تنتقل من vb6 مثلا الى ال .Net الطرق المدعومة من VB.Net للتحويل من String الى Double هي : Cdbl و Convert.ToDouble و Double.Parse و Double.TryParse Cdbl : تقوم بعمل Cast اذا كان النوع هو double فعلا ، او تقوم باستدعاء Convert.ToDouble اذا كان من نوع اخر Convert.ToDouble : تقوم باعادة 0 في حالة كان المدخل null والا تستدعي Double.Parse https://referencesource.microsoft.com/#mscorlib/system/convert.cs,d98fcd7819f63d0f Double.Parse : تقوم باستدعاء Double.TryParse لاختبار اذا كانت عملية التحويل صالحة ام لا ، وترمي استثناء InvalidCastException في حالة لم تكن صالحة Double.TryParse : تأخذ مدخلان هما النص المطلوب تحويله و المتغير الذي تضع فيه نتيجة التحويل ، و تعيد قيمة من Boolean تمثل هل نجحت عملية التحويل ام لا اذا كما رأينا الامر كله يؤول الى Double.TryParse في النهاية ، لذلك اذا كنت متأكد ان المدخل من نوع String وانه ليس null استخدم Double.TryParse وفي المقابل ستستفيد من معلومة اذا كانت عملية التحويل صالحة ام لا ومن ثم تظهر رسالة مثلا للمستخدم تخبره ان مدخله غير صالح ، وهذا مالا تمكنك منه val RE: كيف أجعل البرنامج يقبل عمليات حسابية بأعداد عشرية - Necro PC - 20-11-20 شكرا إخواني بارك الله فيكم تم حل المشكل |