وحدة `decimal` في Python

وحدة `decimal` في Python

تشرح هذه المقالة وحدة decimal في Python۔

يمكنك تعلم أساسيات الحسابات باستخدام وحدة decimal، إدارة الدقة، التقريب، والمزيد، مع أمثلة برمجية.۔

YouTube Video

وحدة decimal في Python

تقدم وحدة decimal في Python حسابات عشرية بدقة ثابتة لتجنب الأخطاء التي تحدث في العمليات ذات الأرقام العشرية ذات الفاصلة العائمة.۔ من خلال استخدام هذه الوحدة، يمكن الحصول على نتائج أكثر موثوقية في العمليات الحسابية المالية أو العمليات التي تتطلب دقة عالية.۔ في الحالات التي تشكل فيها أخطاء النوع float مشكلة، تكون وحدة decimal فعالة.۔

الاستخدام الأساسي لوحدة decimal

عند استخدام وحدة decimal، قم باستيراد الفئة Decimal وتعامل مع القيم ككائنات من هذه الفئة.۔ بعد ذلك، سنوضح الاستخدام الأساسي.۔

1from decimal import Decimal
2
3# Basic usage example of Decimal
4a = Decimal('0.1')
5b = Decimal('0.2')
6result = a + b
7
8print(f"Result: {result}")  # Result: 0.3
  • يُضيف هذا الكود 0.1 و 0.2 بدقة باستخدام الفئة Decimal.۔ إجراء نفس العملية باستخدام نوع float يؤدي إلى قيم بها أخطاء، بينما تتجنب الفئة Decimal هذه الأخطاء.۔

التحكم في الدقة

تتيح لك وحدة decimal التحكم بسهولة في الدقة (عدد المنازل العشرية) في العمليات الحسابية.۔ يمكن استخدام الدالة getcontext() لاسترجاع الإعدادات الحالية وتعديل إعداداتها.۔

1from decimal import Decimal, getcontext
2
3# Set the precision
4getcontext().prec = 4  # Set to 4 decimal places
5
6a = Decimal('1') / Decimal('3')
7print(f"Result with precision 4: {a}")  # Result with precision 4: 0.3333
  • في هذا المثال، تم تعيين الدقة إلى 4 أرقام لحساب 1 ÷ 3.۔ باستخدام Decimal، يمكنك تعيين دقة العمليات الحسابية حسب الحاجة، مما يتيح لك ضبط النتائج وفقًا لذلك.۔

التقريب

تتضمن وحدة decimal عدة خيارات لتحديد طرق التقريب.۔ فيما يلي أمثلة على استخدام خيارات التقريب المختلفة مثل ROUND_UP و ROUND_DOWN

 1from decimal import Decimal, ROUND_UP, ROUND_DOWN
 2
 3# Example of rounding a number
 4a = Decimal('1.2345')
 5
 6# Rounding up
 7rounded_up = a.quantize(Decimal('0.01'), rounding=ROUND_UP)
 8print(f"Rounded Up: {rounded_up}")  # Rounded Up: 1.24
 9
10# Rounding down
11rounded_down = a.quantize(Decimal('0.01'), rounding=ROUND_DOWN)
12print(f"Rounded Down: {rounded_down}")  # Rounded Down: 1.23
  • هنا، تُستخدم الدالة quantize() لتقريب الأرقام لأعلى ولأسفل بدقة منزلتين عشريتين.۔ يتيح هذا التقريب بالإضافة إلى أنواع مختلفة أخرى من طرق التقريب.۔

سياق العمليات والاستثناءات

يمكن أيضًا لوحدة decimal التعامل مع الأخطاء والاستثناءات التي تحدث أثناء العمليات.۔ يمكن تعريف معالجة مخصصة لأخطاء معينة، مثل القسمة على الصفر أو التدفق الزائد۔

1from decimal import Decimal, getcontext, DivisionByZero
2
3# Exception handling
4getcontext().traps[DivisionByZero] = True
5
6try:
7    result = Decimal('1') / Decimal('0')
8except DivisionByZero:
9    print("Division by zero error caught!")
  • في هذا المثال، يتم التقاط استثناء DivisionByZero عندما تحدث قسمة على الصفر۔ في وحدة decimal، يمكن التحكم في الأخطاء وتخصيصها بهذه الطريقة۔

الملخص

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

  • يمكن إجراء الحسابات العشرية الدقيقة باستخدام فئة Decimal
  • يمكنك ضبط إعدادات الدقة والتقريب بحرية۔
  • يمكن إدارة الاستثناءات مثل القسمة على الصفر۔

يتيح لك ذلك استخدام وحدة decimal لتقليل الأخطاء في المواقف التي تتطلب دقة عالية في الحسابات الرقمية۔

يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔

YouTube Video