15-11-20, 02:29 PM
(15-11-20, 01:42 AM)salahalmasry كتب : Dim a, b, c As Double
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
c = a / b
TextBox3.Text = Format(Val©, "0.000")
اعذرني اخي الكريم شكرا لمساعدتك جدا ولكن وجب التنبيه الى ان استخدام 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/#m...7819f63d0f
Double.Parse : تقوم باستدعاء Double.TryParse لاختبار اذا كانت عملية التحويل صالحة ام لا ، وترمي استثناء InvalidCastException في حالة لم تكن صالحة
Double.TryParse : تأخذ مدخلان هما النص المطلوب تحويله و المتغير الذي تضع فيه نتيجة التحويل ، و تعيد قيمة من Boolean تمثل هل نجحت عملية التحويل ام لا
اذا كما رأينا الامر كله يؤول الى Double.TryParse في النهاية ، لذلك اذا كنت متأكد ان المدخل من نوع String وانه ليس null استخدم Double.TryParse وفي المقابل ستستفيد من معلومة اذا كانت عملية التحويل صالحة ام لا ومن ثم تظهر رسالة مثلا للمستخدم تخبره ان مدخله غير صالح ، وهذا مالا تمكنك منه val

