تقنية

تقريب Decimal في بايثون: أدخل نصاً وحدد قاعدة التعادل

حسم منتصفي الأعشار إلى الرقم الزوجي
المسافتان متساويتان؛ نختار الرقم الأخير الزوجي.

تقريب Decimal: اضبط المدخل والمنزلة والتعادل. [1]

الخلاصة السريعة

أنشئ من نص، واستعمل quantize بمنزلة وقاعدة صريحتين. [1]

  • Decimal('2.45') يحفظ العدد العشري؛ Decimal(2.45) يحول قيمة float المخزنة. [1]
  • نقرب للأقرب؛ عند التعادل الدقيق يختار HALF_EVEN آخر رقم محتفظ به زوجياً. [2]
  • للأعشار: 2.45 تصبح 2.4، و2.55 تصبح 2.6، و−2.45 تصبح −2.4. [2]
  • float 2.45 أكبر من المنتصف في تشغيلنا؛ نتيجته 2.5. [1]
  • المثال يستخدم دقة سياق 12 وأعداداً منتهية؛ تجاوز الدقة قد يسبب InvalidOperation. [1]
  • HALF_UP يبعد التعادل عن الصفر؛ 2.4501 ليست تعادلاً وتصبح 2.5 بالقاعدتين. [2]

احفظ المدخل الذي تقصده

Decimal('2.45') من نص دقيق؛ Decimal(2.45) يحفظ قيمة float المخزنة. [1]

الأعداد هنا اخترناها للتوضيح؛ ليست أسعاراً أو قياسات جمعناها. سنحتفظ بمنزلة عشرية واحدة.

احسم المنتصف فقط بالزوجية

في HALF_EVEN نختار الأقرب أولاً. عند تساوي المسافتين فقط، نختار النتيجة ذات الرقم الأخير الزوجي. [2]

2.45 بين 2.4 و2.5 بمسافتين 0.05؛ نختار 2.4. ولـ2.55 نختار 2.6؛ الزوجية تخص الرقم المحتفظ به، لا العدد كله. [2]

نفّذ مثالاً محدداً

quantize يحدد المنزلة والقاعدة والسياق؛ الناتج 2.4. [1]

from decimal import Decimal, Context, ROUND_HALF_EVEN
ctx = Context(prec=12)
x = Decimal('2.45')
y = x.quantize(Decimal('0.1'), rounding=ROUND_HALF_EVEN, context=ctx)
print(y)

اختبر طريق إنشاء العدد

Decimal(2.45) أكبر من 2.45 في تشغيلنا، فالناتج 2.5. [1]

افحص المدخل قبل التقريب؛ القاعدة لم تتغير. [1]

نص وfloat يعطيان مدخلين مختلفين
نفس القاعدة والمنزلة؛ الاختلاف في المدخل.

راجع الإشارة والدقة

HALF_UP يختار الأبعد عن الصفر عند التعادل؛ −2.45 تصبح −2.5، بينما HALF_EVEN يعطي −2.4. [2]

2.4501 أقرب إلى 2.5، لذا تتفق القاعدتان؛ رؤية 5 بعد المنزلة وحدها لا تثبت التعادل. [2]

نعالج أعداداً منتهية ضمن سياق دقته 12؛ إذا تجاوز طول معامل الناتج دقة السياق، تشير quantize إلى InvalidOperation. [1]

سجل المدخل والمنزلة والقاعدة والسياق مع الناتج عند مقارنة برنامجين. نجاح هذه الأمثلة لا يثبت ملاءمة كل إعداد لكل مسألة.

اقرأ أيضًا: كيفية تقريب الأعداد.

المراجع

  1. توثيق Python: Decimal
  2. مواصفة الحساب العشري: قواعد التقريب

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