البرمجة

تقريب الأعداد الكسرية في C#

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

لكن، في البرمجة بشكل عام، وخاصةً في العديد من لغات البرمجة مثل C#، تعتمد الطريقة الافتراضية للتقريب على “تقريب إلى الأقرب”، حيث يتم تقريب الأعداد الكسرية إلى العدد الصحيح الأقرب. وهذا يعني أن الأعداد الكسرية التي تنتهي بالنصف تتم تقريبها إلى الأعلى أو الأسفل اعتمادًا على قيمتها.

في حالة الرقم 2.5، فإن النصف يجعل التقريب يتجه إلى الأعلى. وبالتالي، يتم تقريب الرقم 2.5 إلى الأعلى ليصبح 3، بما يتوافق مع القاعدة الشائعة للتقريب.

لكن، عند استخدام الدالة Math.Round في لغة البرمجة C#، السلوك الافتراضي لها يكون بالتقريب إلى الأقرب أيضًا، لكن في حالة وجود قيمة نصفية، يتم تقريبها إلى العدد الصحيح الأقرب أيضًا، وليس دائمًا إلى الأعلى كما هو متوقع.

وهذا يفسر لماذا يكون result يساوي 2 بدلاً من 3. لأن الرقم 2.5 يتم تقريبه إلى الأعداد الصحيحة الأقرب، والذي هو 2 في هذه الحالة.

للتحكم في سلوك التقريب وجعله يتجه دائمًا إلى الأعلى، يمكن استخدام دالة Math.Ceiling بدلاً من Math.Round. هذا سيجعل الرقم 2.5 يتم تقريبه دائمًا إلى الأعلى ليصبح 3.

المزيد من المعلومات

بالطبع، دعنا نواصل مناقشة هذا الموضوع بمزيد من التفصيل.

السبب الذي يجعل الرقم 2.5 يتم تقريبه إلى 2 بدلاً من 3 يعود إلى طريقة عمل الدالة Math.Round في لغة C#. عند استخدام هذه الدالة، يتم تقريب الأعداد الكسرية إلى الأعداد الصحيحة الأقرب. ولكن عندما يكون هناك قيمة نصفية (مثل 0.5)، فإن السلوك الافتراضي لهذه الدالة هو التقريب إلى الأسفل.

للتوضيح، دعونا نلقي نظرة على كيفية عمل التقريب باستخدام Math.Round:

  • إذا كان الجزء العشري أقل من 0.5، فإن العدد يتم تقريبه إلى الأسفل.
  • إذا كان الجزء العشري أكبر من أو يساوي 0.5، فإن العدد يتم تقريبه إلى الأعلى.

ومن خلال هذه السياسة، يتم تقريب الرقم 2.5 إلى الأسفل ليصبح 2، بدلاً من التقريب إلى الأعلى ليصبح 3 كما قد توقعت.

مع ذلك، يمكن التحكم في سلوك التقريب عن طريق استخدام الإعدادات الإضافية المتاحة في دالة Math.Round. يمكنك تحديد طريقة التقريب المطلوبة باستخدام معاملات الدالة، مما يتيح لك التحكم في سلوك التقريب بدقة أكبر.

على سبيل المثال، يمكنك استخدام الإعداد MidpointRounding.AwayFromZero للتأكيد على أن التقريب يتم دائمًا إلى الأعلى في حالة وجود قيمة نصفية، وهذا سيؤدي إلى تقريب الرقم 2.5 إلى 3 كما توقعت.

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر