السلام عليكم

أقوم هذه الأيام ببرمجة برنامج "بسيط" لتسجيل واردات وصادرات مخزن لصديق لي باستخدام C#.NET

كل الأصناف تدخل وتخرج من المخزن بسعر الشراء ولا توجد نسبة ربح

انهيت الخطوات المتعلقة بتصميم الشاشات والتقارير وما إلى ذلك ولم يبق لي إلا مسألة حساب سعر القطعة الواحدة من سعر المجموعة (كرتونة)

حيث أن فواتير الشراء (الوارد) تسجل فيها الاصناف المشتراة بالوحدة الكبرى (كرتونة أو صندوق)

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

وهنا لا بد من قسمة سعر الوحدى الكبرى على عدد الوحدات الصغرى لاستخلاص سعر الوحدة الصغرى

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

مثال: كرتونة بدينار تحتوي على ثلاث قطع -----> سعر القطعة يساوي 0.333

أما سعر ثلاث قطع فهو 0.999 وليس ديناراً وهذه نتيجة صحيحة

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

استخدمت دالة math.round ولكنها تقرب أي رقم عشري إلى أقرب رقم صحيح

هذا بالنسبة للصيغة البسيطة للدالة

هناك تقريبا 7 overloads لها ولكن فضلت أن استشريكم قبل حتى أن أجربها لعل مبرمجي الأنظمة التجارية لديهم مفهوم آخر لا أعلم عنه

أي اقتراحات ؟