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

الكود سليم ولكن يحسب ارقام صحيحة فقط وليس ارقام عشرية ؟

مغلقمُجاب
بدأه red_scorpion1 في 25 فبراير 2013 · 7 رد · 831 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

 

اقوم بحساب مجموع أيام الغياب فى الكود التالى

 

        private void e_ghyab_tx_Leave(object sender, EventArgs e)
        {
            var g1 = Double.Parse(((e_ghyab_mrdy_tx.Text.Trim() == string.Empty ? (object)0 : e_ghyab_mrdy_tx.Text.Trim())).ToString());
            var g2 = Double.Parse(((e_ghyab_no_mortb_tx.Text.Trim() == string.Empty ? (object)0 : e_ghyab_no_mortb_tx.Text.Trim())).ToString());
            var g3 = Double.Parse(((e_ghyab_tx.Text.Trim() == string.Empty ? (object)0 : e_ghyab_tx.Text.Trim())).ToString());
            e_ghyab_tot_tx.Text = (g1 + g2 + g3).ToString();
        }

 

واقوم هنا بحساب درجات الغياب لكل موظف

 

 

        public void tx_ghy_TextChanged(object sender, EventArgs e)
        {
            if (Convert.ToDouble(e_ghyab_tot_tx.Text) == 0)
            {
                e_ghyab_deg_tx.Text = "26";
            }
            else
            {
                if (Convert.ToDouble(e_ghyab_tot_tx.Text) == 1)
                {
                    e_ghyab_deg_tx.Text = "24";
                }
                else
                {
                    if (Convert.ToDouble(e_ghyab_tot_tx.Text) == 2)
                    {
                        e_ghyab_deg_tx.Text = "20";
                    }
                    else
                    {
                        if (Convert.ToDouble(e_ghyab_tot_tx.Text) == 3)
                        {
                            e_ghyab_deg_tx.Text = "14";
                        }
                        else
                        {
                            if (Convert.ToDouble(e_ghyab_tot_tx.Text) == 4)
                            {
                                e_ghyab_deg_tx.Text = "6";
                            }
                            else
                            {
                                if (Convert.ToDouble(e_ghyab_tot_tx.Text) == 5)
                                {
                                    e_ghyab_deg_tx.Text = "0";
                                }
                                else
                                {
                                    var count = 0;
                                    var flag = 0;
                                    for (var i = 6; i <= Convert.ToDouble(((e_ghyab_tot_tx.Text.Trim() == string.Empty ? (object)0 : e_ghyab_tot_tx.Text.Trim())).ToString()); i++)
                                    {
                                        flag++;
                                        if (flag == 1)
                                        {
                                            count += 6;
                                            flag = 0;
                                        }
                                    }
                                    e_ghyab_deg_tx.Text = (count * -1).ToString();
                                }
                            }
                        }
                    }
                }
            }
        }

 

المشكلة فى حساب مجموع أيام الغياب والخاص به الكود الأول 

 

وهى عند كتابة عدد ايام مثلا 1.5 لا يتم حساب عدد الأيام اى لا اجد المجموع فى e_ghyab_tot_tx = 1.5 ولكنى اجده 0 وكذلك اذا كتبت فى مربعين مثلا 0.5 و 0.5 المفترض ان يظهر مجموعهم = 1 ولكن لا يظهر ايضا ؟؟

 

اذا تم كتابة عدد الأيام كرقم صحيح ( 1 او 2 او ...... ) يقبله ويقوم بالحساب مع العلم ان نوع الحقل فى قاعدة البيانات Float ؟

تم تعديل هذه المشاركة بواسطة red_scorpion1 في 25 فبراير 2013 في 21:52

#2

السلام عليكم 

 

أخي جرب تغيير المتغير الأساسي من Int إلى double وليس التحويل إلى double

 

بالتوفيق

Be the change you want to see in the world


#3
 private void e_ghyab_tx_Leave(object sender, EventArgs e)
        {
            var g1 = float.Parse(((e_ghyab_mrdy_tx.Text.Trim() == string.Empty ? (object)0 : e_ghyab_mrdy_tx.Text.Trim())).ToString());
            var g2 = float.Parse(((e_ghyab_no_mortb_tx.Text.Trim() == string.Empty ? (object)0 : e_ghyab_no_mortb_tx.Text.Trim())).ToString());
            var g3 = float.Parse(((e_ghyab_tx.Text.Trim() == string.Empty ? (object)0 : e_ghyab_tx.Text.Trim())).ToString());
            e_ghyab_tot_tx.Text = (g1 + g2 + g3).ToString();
        }

 

جرب هذا

13598125002.gif

038c8ecfa8.gif

#4
حامد محمد الوصيف كتب:
 private void e_ghyab_tx_Leave(object sender, EventArgs e)
        {
            var g1 = float.Parse(((e_ghyab_mrdy_tx.Text.Trim() == string.Empty ? (object)0 : e_ghyab_mrdy_tx.Text.Trim())).ToString());
            var g2 = float.Parse(((e_ghyab_no_mortb_tx.Text.Trim() == string.Empty ? (object)0 : e_ghyab_no_mortb_tx.Text.Trim())).ToString());
            var g3 = float.Parse(((e_ghyab_tx.Text.Trim() == string.Empty ? (object)0 : e_ghyab_tx.Text.Trim())).ToString());
            e_ghyab_tot_tx.Text = (g1 + g2 + g3).ToString();
        }

 

جرب هذا

 

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

#5

جرب هذا

  private void e_ghyab_tx_Leave(object sender, EventArgs e)
        {
            double g1 = Double.Parse(((e_ghyab_mrdy_tx.Text.Trim() == string.Empty ? "0" : e_ghyab_mrdy_tx.Text.Trim())).ToString());
            double g2 = Double.Parse(((e_ghyab_no_mortb_tx.Text.Trim() == string.Empty ? "0" : e_ghyab_no_mortb_tx.Text.Trim())).ToString());
            double g3 = Double.Parse(((e_ghyab_tx.Text.Trim() == string.Empty ? "0" : e_ghyab_tx.Text.Trim())).ToString());
            e_ghyab_tot_tx.Text = (g1 + g2 + g3).ToString();
        }
#6

أخي جربت الكود عندي وعمل كما ينبغي أي تظهر النتائج بشكل كسري طبيعي !

 

فأين المشكلة عندك بالظبط ؟

 

ثم سبق وكانت لديك مشكلة شبيهة وذكرت أنها حلت بعد استبدال Double.Parse بـ Convert.ToDouble  وحلت المشكلة علما أن الثانية تستدعي الأولى !!

فلماذا لم تجرب علما أني انتبهت أنك تستخدمها في حساب درجة الغياب والتي قلت أنه لا توجد فيها مشكلة لديك

إذا جرب واستخدمها في الكود الأول

تم تعديل هذه المشاركة بواسطة أبو أحمد المبرمج في 27 فبراير 2013 في 01:54

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#7
أبو أحمد المبرمج كتب:

أخي جربت الكود عندي وعمل كما ينبغي أي تظهر النتائج بشكل كسري طبيعي !

 

فأين المشكلة عندك بالظبط ؟

 

ثم سبق وكانت لديك مشكلة شبيهة وذكرت أنها حلت بعد استبدال Double.Parse بـ Convert.ToDouble  وحلت المشكلة علما أن الثانية تستدعي الأولى !!

فلماذا لم تجرب علما أني انتبهت أنك تستخدمها في حساب درجة الغياب والتي قلت أنه لا توجد فيها مشكلة لديك

إذا جرب واستخدمها في الكود الأول

 

السلام عليكم

 

اخى الفاضل بالفعل انا ادرك انا الكود سليم تماما ولكن لا ادرى ما المشكلة ؟ سأقوم بعمل نفس الشاشة مرة اخرى ربما يكون المشكلة من الفيجوال وسأعلمك بالنتيجة

#8 أفضل إجابة

الحمد لله تم حل المشكلة وكان السبب الرسالة التالية ولكنى لم انتبه لها

 

اقتباس

Unable to find manifest signing certificate in the certificate store

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…