السلام عليكم
اريد دالة تحول الى رقم عشرى
مث
اذا لدينا رقم
1.7373223
فاريد ان تكون كتالى وفقط
1.73
فانا جاربت كل المعلومات ولكنها تستخدم فى بعض الارقام والبعض الاخر لائا
مثل دالة fix
round
واخرها
فارجو المساعدة وشكرا
السلام عليكم
اريد دالة تحول الى رقم عشرى
مث
اذا لدينا رقم
1.7373223
فاريد ان تكون كتالى وفقط
1.73
فانا جاربت كل المعلومات ولكنها تستخدم فى بعض الارقام والبعض الاخر لائا
مثل دالة fix
round
واخرها
فارجو المساعدة وشكرا
دعوة الاخوان والمسلمين والاسلام
اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

انا هاوضح سؤال وارجو بعد اذنكم الحل لان المسالة والله العظيم خطيرة اوى
الفكرة يا جماعة فى المشروع ده
ان انا بقطع قطع معينة من الجبل بمقاس مربع ( طول القطة فى العرض فى الارتفاع )
علشان اعرف مساحتها
واضربها فى السعر وابيعها للمصنع ( العميل
فلو طلع لى ان المساحةبدون استخدام معادلة 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 — السبب: تنسيق الكود
دعوة الاخوان والمسلمين والاسلام
اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

جميع دوال التحويل 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
فى بعض الزملاء اعطونى دالة اسمها
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
دعوة الاخوان والمسلمين والاسلام
اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

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
دعوة الاخوان والمسلمين والاسلام
اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

ما الخطأ في الناتج؟
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
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
ودى تسعة متر وسبعين سنتمتر
اعتقد فى فرق بين سبعة سنتمتر و سبعين سنتمتر
دعوة الاخوان والمسلمين والاسلام
اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

بصراحة أنا احترت معك
في مشاركتك رقم 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
يارة سمير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
اولا انا اشكرك جدا انت ساعدتنى بنسبة 80 % فقط وبارك اله فيكم يا رب العالمين
انا هافهمك المشكلة
1.5
ده يعتبر متر ونصف
1.05
ده يعتبر متر وخمسة سنتمتر
فانا بعمل برنامج بيحسب اولا قيمة المتر المكعب
الطول فى العرض فى الارتافاع
علشان يطلعلى الناتج واقص منه الراقام الزيادة معدا اخر رقمين بعد الفاصلة
واضرب الناتج فى السعر
واقول للعميل تفضل هذا هو السعر المطلوب
بالصفر بعد رقم بيعتبر بقيمة
1.70 ده رقم
1.7 وده رقم تانى خااااااااااااالص
ولو ضربت الرقم الاول فى السعر الف جنيه
والرقم الثانى فى السعر الف جنيه
هايبقى فى نصيب وسرقة
وحراااااااااام الواحد يسرق فى رمضان وننصب على العميل
:)
1.7 8 100 =170
1.70 8 100 =170
شوفت الفرق ازاى بقى ؟؟
دعوة الاخوان والمسلمين والاسلام
اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

يارة سمير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
لا انا اسف انت صح
وانا ال غلط
:)
شكرا لك عل مساعدتك
انت كده ساعدتنى بنسة 100%
شكرا لحضرتك جدا يا فندم
كل عام وانتم بخير يا رب ورمضان كريم علينا وعلى الامة الاسلامية
دعوة الاخوان والمسلمين والاسلام
اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

العفو.
أذكر بضرورة قراءة قواعد المشاركة والكتابة باللغة العربية الفصحى (أو ما أمكن بشكل قريب منها)
واستخدام تنسيق
لتنسيق المشاركات البرمجية.
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
انا مش بعرف باللغة العربية الفسحة
معلش انا من الارياف والله
معلش يا جماعة اعزرونى
دعوة الاخوان والمسلمين والاسلام
اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

استاذ Xacker
lممكن بعد اذنك تقرا الموضوع السابق ده
علشان انا بطلب فيه مساهدة عاجلة جدا
فى التقرير وشكرا لحضرتك وكل عام وانت بخير
دعوة الاخوان والمسلمين والاسلام
اللهم اسالك بالهدى واسالك للمؤمنين الهدى وانى على يقين باتقوى يا رحمن يا رحيم

للأسف ليس لي خبرة في بناء التقارير
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget