وحدة `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 أيضًا.۔