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

مساعدة : اريد دالة تحول رقم عشرى

بدأه يارة سمير2 في 4 أغسطس 2012 · 15 رد · 1,152 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد دالة تحول الى رقم عشرى

مث

اذا لدينا رقم

1.7373223

فاريد ان تكون كتالى وفقط

1.73

فانا جاربت كل المعلومات ولكنها تستخدم فى بعض الارقام والبعض الاخر لائا

مثل دالة fix

round

واخرها

فارجو المساعدة وشكرا

دعوة الاخوان والمسلمين والاسلام

اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

1472008-014331PM.jpg

#2

انا هاوضح سؤال وارجو بعد اذنكم الحل لان المسالة والله العظيم خطيرة اوى

616512207.png

213582929.png

الفكرة يا جماعة فى المشروع ده

ان انا بقطع قطع معينة من الجبل بمقاس مربع ( طول القطة فى العرض فى الارتفاع )

علشان اعرف مساحتها

واضربها فى السعر وابيعها للمصنع ( العميل

فلو طلع لى ان المساحةبدون استخدام معادلة math.round

وطلع لى ان المساحة

1.35480393

انا بضرب 1.35 فى السعر وبيطلعلى السعر المطلوب

بعد استخدام المعادلة معادلة math.round

المقاس بيطلعلى 1.36 ويطلعلى الناتج مختلف عن قبله

وتبقى مشكلة كبيرة اوى

فارجو بعد اذنكم حل هذه المشكلة وجزاكم الله كل خير

وكود المعادلة كتالى

      Try
            r1.Text = Double.Parse(x1.Text) * Double.Parse(x2.Text) * Double.Parse(x3.Text)

            r2.Text = Math.Round(Double.Parse(x1.Text) * Double.Parse(x2.Text) * Double.Parse(x3.Text), 2)

        Catch ex As Exception

        End Try

الكود السابق يا اما بيجيب نتائج سليمية ويا اما يجيب نتائج مش سليمة

تم تعديل هذه المشاركة بواسطة Xacker في 4 أغسطس 2012 في 05:04 — السبب: تنسيق الكود

دعوة الاخوان والمسلمين والاسلام

اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

1472008-014331PM.jpg

#3

جميع دوال التحويل Round, Floor, Ceiling, Truncate, ... وحتى

ToString("n2")

أو

Format(num, "###.##")

لن تحافظ على القيمة وسيتم تدوير الرقم وفق شروط معينة.

للحصول على القيمة مقربة إلى عددين بعد الفاصلة (بدون) تغيير اتبعي الطريقة التالية:

Math.Truncate(Double.Parse(x1.Text) * 100) / 100

هنا بفرض أن x1.Text = 1.35980393

بعد الضرب بـ 100 تصبح 135.980393

ثم يتم تنفيذ Truncate (التقريب إلى الصفر، أي إزالة جميع الأعداد بعد الفاصلة) تصبح 135.0

والآن نقسم على 100 فتعود 1.35

ونكون حصلنا على العدد بدون أي تدوير.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#4

فى بعض الزملاء اعطونى دالة اسمها

FormatNumber

ولاسف باردو طلعت غلط

 r1.Text = Double.Parse(x1.Text) * Double.Parse(x2.Text) * Double.Parse(x3.Text)

   r2.Text = FormatNumber(r1.Text, 2)

مثال

2.5*2.55*1.03

الناتج الاصلى

6.56625

الناتج بعد القص

6.57

انا جربت المعادلة السابقة بعد ما احذتها من بعض الاشخاص ولاسف طلعت باردو غلط

تم تعديل هذه المشاركة بواسطة Xacker في 4 أغسطس 2012 في 05:05

دعوة الاخوان والمسلمين والاسلام

اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

1472008-014331PM.jpg

#5
Xacker كتب:

جميع دوال التحويل Round, Floor, Ceiling, Truncate, ... وحتى ToString("n2") أو Format(num, "###.##") لن تحافظ على القيمة وسيتم تدوير الرقم وفق شروط معينة.

للحصول على القيمة مقربة إلى عددين بعد الفاصلة (بدون) تغيير اتبعي الطريقة التالية:

Math.Truncate(Double.Parse(x1.Text) * 100) / 100

هنا بفرض أن x1.Text = 1.35980393

بعد الضرب بـ 100 تصبح 135.980393

ثم يتم تنفيذ Truncate (التقريب إلى الصفر، أي إزالة جميع الأعداد بعد الفاصلة) تصبح 135.0

والآن نقسم على 100 فتعود 1.35

ونكون حصلنا على العدد بدون أي تدوير.

الف شكر وجزاك الله خير

انا استخدمتها بس حصلى مشكلة كبرة جدااااااااااااااااااااااااا

الا وهى

1.5*2.94*2.2

=

9.702

الناتج

9.7

الكود

  r1.Text = Double.Parse(x1.Text) * Double.Parse(x2.Text) * Double.Parse(x3.Text)


  r2.Text = Math.Truncate(Double.Parse(r1.Text) * 100) / 100

تم تعديل هذه المشاركة بواسطة Xacker في 4 أغسطس 2012 في 05:06

دعوة الاخوان والمسلمين والاسلام

اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

1472008-014331PM.jpg

#6

ما الخطأ في الناتج؟

9.70 = 9.7

إذا كنتي تريدين عرض الـ 0 بكل الأحوال فاستبدليه بالشكل:

r2.Text = (Math.Truncate(Double.Parse(r1.Text) * 100) / 100).ToString("n2")

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#7
Xacker كتب:

ما الخطأ في الناتج؟

9.70 = 9.7

إذا كنتي تريدين عرض الـ 0 بكل الأحوال فاستبدليه بالشكل:

r2.Text = (Math.Truncate(Double.Parse(r1.Text) * 100) / 100).ToString("n2")

شكرا لحضرتك بس فى مشكلة

الطول 2.5

*

العرض

12.5

*

الارتفاع

2.8

بيساوى

87.5

بعد استخدام الدالة الاخيرة بتاعت ضرتك طلع الناتج

87.50

؟؟؟؟؟؟؟؟؟؟؟؟ ليه بقى الصفر الاخييييييييييييييييير ؟؟؟؟؟؟؟؟؟؟

9.7

دى تسعة متر وسبعة سنتمتر

9.70

ودى تسعة متر وسبعين سنتمتر

اعتقد فى فرق بين سبعة سنتمتر و سبعين سنتمتر

دعوة الاخوان والمسلمين والاسلام

اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

1472008-014331PM.jpg

#8

بصراحة أنا احترت معك

في مشاركتك رقم 5 قلت بأن الناتج (بصيغة double) كان 9.702، والناتج بعد تنفيذ الدالة التي أعطيتك إياها كان 9.7

وذكرت بأن هناك مشكلة

فوضّحت لك في المشاركة رقم 6 بأن الناتج 9.7 صحيح واعتقدت أنك تريدينه أن يظهر بدقة عددين بعد الفاصلة بكل الأحوال، فأخبرتك أن تستخدمي

.ToString("n2")

الآن في المشاركة رقم 7، كلامك انقلب وأصبح الناتج 87.50 غير مناسب لك وتريدينه 87.5

هاتي ناتج ضرب 3 أرقام وأخبريني كيف تريدينه أن يظهر كنتيجة نهائية حتى نقدر نفهم على بعض :)

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#9
يارة سمير2 كتب:

9.7

دى تسعة متر وسبعة سنتمتر

9.70

ودى تسعة متر وسبعين سنتمتر

اعتقد فى فرق بين سبعة سنتمتر و سبعين سنتمتر

اها بعد تحرير المشاركة توضّحت لي الحيرة التي انت فيها.

للتذكير بالتحويلات المترية البسيطة:

المتر = 100 سم

أي أن 9.7 متر = 9 متر + 0.7 متر

فالـ 0.7 بالسنتمترات = 0.7 * 100 = 70 سنتمتر وليس 7 سنتمتر :)

الصفر إلى أقصى اليمين بعد الفاصلة مهمل أي أن 9.70 = 9.7

فنتيجة المعادلة صحيحة ولكن قراءتك لها خاطئة.

بالتوفيق

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#10

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

انا هافهمك المشكلة

1.5

ده يعتبر متر ونصف

1.05

ده يعتبر متر وخمسة سنتمتر

فانا بعمل برنامج بيحسب اولا قيمة المتر المكعب

الطول فى العرض فى الارتافاع

علشان يطلعلى الناتج واقص منه الراقام الزيادة معدا اخر رقمين بعد الفاصلة

واضرب الناتج فى السعر

واقول للعميل تفضل هذا هو السعر المطلوب

بالصفر بعد رقم بيعتبر بقيمة

1.70 ده رقم

1.7 وده رقم تانى خااااااااااااالص

ولو ضربت الرقم الاول فى السعر الف جنيه

والرقم الثانى فى السعر الف جنيه

هايبقى فى نصيب وسرقة

وحراااااااااام الواحد يسرق فى رمضان وننصب على العميل

:)

1.7 8 100 =170

1.70 8 100 =170

شوفت الفرق ازاى بقى ؟؟

دعوة الاخوان والمسلمين والاسلام

اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

1472008-014331PM.jpg

#11
يارة سمير2 كتب:

1.70 ده رقم

1.7 وده رقم تانى خااااااااااااالص

ولو ضربت الرقم الاول فى السعر الف جنيه

والرقم الثانى فى السعر الف جنيه

هايبقى فى نصيب وسرقة

وحراااااااااام الواحد يسرق فى رمضان وننصب على العميل

بالذمة بس اضربيهم بـ 1000 وشوفي الناتج :)

على كل حال شوفي مشاركتي الأخيرة للتوضيح

ورمضان كريم (شكله الصيام مأثر حبتين زيادة :D)

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#12

لا انا اسف انت صح

وانا ال غلط

:)

شكرا لك عل مساعدتك

انت كده ساعدتنى بنسة 100%

شكرا لحضرتك جدا يا فندم

كل عام وانتم بخير يا رب ورمضان كريم علينا وعلى الامة الاسلامية

دعوة الاخوان والمسلمين والاسلام

اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

1472008-014331PM.jpg

#13

العفو.

أذكر بضرورة قراءة قواعد المشاركة والكتابة باللغة العربية الفصحى (أو ما أمكن بشكل قريب منها)

واستخدام تنسيق

لتنسيق المشاركات البرمجية.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#14

انا مش بعرف باللغة العربية الفسحة

معلش انا من الارياف والله

معلش يا جماعة اعزرونى

دعوة الاخوان والمسلمين والاسلام

اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

1472008-014331PM.jpg

#15

استاذ Xacker

/index.php?showtopic=267261

lممكن بعد اذنك تقرا الموضوع السابق ده

علشان انا بطلب فيه مساهدة عاجلة جدا

فى التقرير وشكرا لحضرتك وكل عام وانت بخير

دعوة الاخوان والمسلمين والاسلام

اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

1472008-014331PM.jpg

#16

للأسف ليس لي خبرة في بناء التقارير

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

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