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