الفرق بين المراجعتين لصفحة: «Python/float»

من موسوعة حسوب
طلا ملخص تعديل
 
(8 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 6: سطر 6:
>>> print(z)
>>> print(z)
30000.0
30000.0
>>> a = 10.
>>> b = .001
>>> c = 0e0
>>> print(a, b, c)
10.0 0.001 0.0
</syntaxhighlight>
</syntaxhighlight>


سطر 16: سطر 21:
</syntaxhighlight>
</syntaxhighlight>


== التحويل إلى الأعداد العشرية باستخدام الدّالة <code>float()‎</code> ==
== التحويل إلى الأعداد العشرية باستخدام الدالة <code>float()‎</code> ==
تعيد الدالة <code>float()‎</code> عددًا عشريًا من الرقم أو السلسلة النصية التي تمرّر إليها. إن كان الوسيط سلسلة نصية، فيجب أن يتضمن عددًا عشريًا، ويمكن أن يكون مسبوقًا بإشارتي <code>'+'</code> أو <code>'-'</code>، ولا تؤثر إشارة <code>'+'</code> على القيمة الناتجة. يمكن للوسيط الممرّر لهذه الدالة أن يكون سلسلة نصية تحمل قيمة <code>NaN</code>  (اختصار not-a-number) أو موجب أو سالب ما لا نهاية <code>infinity</code>. وبصورة أدق يجب أن تطابق صيغة الوسيط الممرر إلى الدالة الصيغة التالية بعد حذف المسافات البيضاء التي تحيط بالوسيط:<syntaxhighlight lang="python3">
تعيد الدالة <code>float()‎</code> عددًا عشريًا من الرقم أو [[Python/str|السلسلة النصية]] التي تمرّر إليها. إن كان الوسيط سلسلة نصية، فيجب أن يتضمن عددًا عشريًا، ويمكن أن يكون مسبوقًا بإشارتي <code>'+'</code> أو <code>'-'</code>، ولا تؤثر إشارة <code>'+'</code> على القيمة الناتجة. يمكن للمعامل الممرّر لهذه الدالة أن يكون سلسلة نصية تحمل قيمة <code>NaN</code>  (اختصار not-a-number) أو موجب أو سالب ما لا نهاية <code>infinity</code>. وبصورة أدقّ يجب أن تطابق صيغة المعامل الممرر إلى الدالة الصيغة التالية بعد حذف المسافات البيضاء التي تحيط بالمعامل:<syntaxhighlight lang="python3">
sign ::= "+" | "-"
sign ::= "+" | "-"
infinity ::= "Infinity" | "inf"
infinity ::= "Infinity" | "inf"
سطر 33: سطر 38:
في حال عدم وجود أي وسائط للدالة، فإنّها تعيد القيمة <code>0.0</code>.
في حال عدم وجود أي وسائط للدالة، فإنّها تعيد القيمة <code>0.0</code>.


ملاحظة: هنالك محدوديات (تتعلق بالدقة) لاستخدام الأعداد العشرية في بايثون، مَثَلُهَا كمَثَلِ بقية لغات البرمجة. رجاءً راجع صفحة «<nowiki/>[[Python/float-arithmatics|العمليات الحسابية على الأعداد العشرية: مشاكل ومعوقات]]» لمزيدٍ من التفاصيل.
ملاحظة: هنالك محدوديات (تتعلق بالدقة) لاستخدام الأعداد العشرية في بايثون، مَثَلُهَا كمَثَلِ بقية لغات البرمجة. رجاءً راجع صفحة «<nowiki/>[[Python/float_arithmatics|العمليات الحسابية على الأعداد العشرية: مشاكل ومعوقات]]» لمزيدٍ من التفاصيل.


== أمثلة ==
== أمثلة ==
<syntaxhighlight lang="python3">
أمثلة نموذجية عن قيم عشرية موجبة وسالبة، وأخرى ممثلة بالصيغة العلمية، إضافةً إلى اللا نهاية:<syntaxhighlight lang="python3">
>>> float('+1.23')
>>> float('+1.23')
1.23
1.23
سطر 47: سطر 52:
>>> float('-Infinity')
>>> float('-Infinity')
-inf
-inf
</syntaxhighlight>
</syntaxhighlight>'''ملاحظة:''' الإصدار 3.6 أصبح بالإمكان تجميع الأعداد باستخدام الشرطة السفلية كما هو الحال مع رموز الأرقام المستخدمة في الشيفرة.
 
== تغيير في الإصدار 3.6 ==
أصبح بالإمكان تجميع الأعداد باستخدام الشرطة السفلية كما هو الحال مع رموز الأرقام المستخدمة في الشيفرة.


== الدوال التابعة للكائن <code>float</code> ==
== الدوال التابعة للكائن <code>float</code> ==


=== <code>[[Python/float/as_integer_ratio|float.as_integer_ratio()‎]]</code> ===
=== <code>[[Python/float/as_integer_ratio|float.as_integer_ratio()‎]]</code> ===
تعيد الدالة زوجًا من <nowiki/>[[Python/int|الأعداد الصحيحة]] التي تكون نسبتها مساوية للعدد العشري تمامًا، ويكون المقام في هذه النسبة موجبًا.
يعيد التابع زوجًا من <nowiki/>[[Python/int|الأعداد الصحيحة]] التي تكون نسبتها مساوية للعدد العشري تمامًا، ويكون المقام في هذه النسبة موجبًا.


=== <code>[[Python/float/is_integer|float.is_integer()‎]]</code> ===
=== <code>[[Python/float/is_integer|float.is_integer()‎]]</code> ===
تختبر الدالة ما إذا كان العدد العشري محدّدًا (finite) ويمتلك قيمة صحيحة أو لا.
يختبر التابع ما إذا كان العدد العشري محدودًا (finite) ويمتلك قيمة صحيحة أم لا.


=== <code>[[Python/float/hex|float.hex()‎]]</code> ===
=== <code>[[Python/float/hex|float.hex()‎]]</code> ===
تعيد الدالة العدد العشري ذا الفاصلة العائمة <nowiki/>[[Python/str|كسلسلة نصية]] تتضمن التمثيل الست عشري لذلك العدد. هذه الدالة هي تابع نسخة instance method.
يعيد التابع العدد العشري ذا الفاصلة العائمة <nowiki/>[[Python/str|كسلسلة نصية]] تتضمن التمثيل الست عشري لذلك العدد. هذا التابع هو تابع نسخة (instance method).


=== <code>[[Python/float/fromhex|float.fromhex()‎]]</code> ===
=== <code>[[Python/float/fromhex|float.fromhex()‎]]</code> ===
هذه الدالة هي تابع صنف (Class method) يعيد العدد العشري الذي يمكن تمثيله باستخدام السلسلة النصية التي تتضمن الصيغة الست عشرية.
هذا التابع هو تابع صنف (class method) يعيد العدد العشري الذي يمكن تمثيله باستخدام [[Python/str|السلسلة النصية]] التي تتضمن الصيغة الست عشرية.
 
== انظر أيضًا ==
* [[Python/str|السلاسل النصية str في بايثون]].
* [[Python/int|الأعداد الصحيحة int في بايثون]].
* [[Python/fraction|الأعداد الكسرية في بايثون]].
* [[Python/complex|الأعداد المركبة في بايثون]].


== مصادر ==
== مصادر ==
سطر 70: سطر 78:
[[تصنيف:Python]]
[[تصنيف:Python]]
[[تصنيف:Python Types]]
[[تصنيف:Python Types]]
[[تصنيف:Python Functions]]
[[تصنيف:Python Built-in Functions]]
[[تصنيف:Python Built-in Functions]]
[[تصنيف:Python Float]]

المراجعة الحالية بتاريخ 19:31، 29 نوفمبر 2018

الأعداد العشرية (ذات الفاصلة العائمة floating point) هي الأعداد التي تتضمن فاصلة عشرية أو علامة أسية:

>>> x = 2.5
>>> y = -1.609
>>> z = 3e4
>>> print(z)
30000.0
>>> a = 10.
>>> b = .001
>>> c = 0e0
>>> print(a, b, c)
10.0 0.001 0.0

يمكن الحصول على معلومات حول دقّة الأعداد العشرية والتمثيل الداخلي لها في الحاسوب الذي يعمل عليه البرنامج عن طريق مكتبة sys.float_info:

>>> import sys

>>> sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)

التحويل إلى الأعداد العشرية باستخدام الدالة float()‎

تعيد الدالة float()‎ عددًا عشريًا من الرقم أو السلسلة النصية التي تمرّر إليها. إن كان الوسيط سلسلة نصية، فيجب أن يتضمن عددًا عشريًا، ويمكن أن يكون مسبوقًا بإشارتي '+' أو '-'، ولا تؤثر إشارة '+' على القيمة الناتجة. يمكن للمعامل الممرّر لهذه الدالة أن يكون سلسلة نصية تحمل قيمة NaN (اختصار not-a-number) أو موجب أو سالب ما لا نهاية infinity. وبصورة أدقّ يجب أن تطابق صيغة المعامل الممرر إلى الدالة الصيغة التالية بعد حذف المسافات البيضاء التي تحيط بالمعامل:

sign ::= "+" | "-"
infinity ::= "Infinity" | "inf"
nan ::= "nan"
numeric_value ::= floatnumber | infinity | nan
numeric_string ::= [sign] numeric_value

تعني floatnumber هنا رموز الأرقام العشرية في بايثون.

ليست السلسلة النصية حساسةً لحالة الأحرف، لذا يمكن استخدام عبارات مثل ‎"inf"‎ و ‎"INF"‎ و ‎"INFINITY"‎ و ‎"iNfINity"‎ لتمثيل القيمة الموجبة لما لا نهاية.

إذا كان الوسيط عددًا صحيحًا أو عددًا عشريًا، فستعيد الدالة عددًا عشريًا يحمل نفس القيمة (ضمن مقدار دقة الأعداد العشرية في بايثون). وإذا كانت قيمة الوسيط خارج نطاق الأعداد العشرية في اللغة فإنّها ستطلق خطأ من نوع OverflowError.

في حال عدم وجود أي وسائط للدالة، فإنّها تعيد القيمة 0.0.

ملاحظة: هنالك محدوديات (تتعلق بالدقة) لاستخدام الأعداد العشرية في بايثون، مَثَلُهَا كمَثَلِ بقية لغات البرمجة. رجاءً راجع صفحة «العمليات الحسابية على الأعداد العشرية: مشاكل ومعوقات» لمزيدٍ من التفاصيل.

أمثلة

أمثلة نموذجية عن قيم عشرية موجبة وسالبة، وأخرى ممثلة بالصيغة العلمية، إضافةً إلى اللا نهاية:

>>> float('+1.23')
1.23
>>> float(' -12345\n')
-12345.0
>>> float('1e-003')
0.001
>>> float('+1E6')
1000000.0
>>> float('-Infinity')
-inf

ملاحظة: الإصدار 3.6 أصبح بالإمكان تجميع الأعداد باستخدام الشرطة السفلية كما هو الحال مع رموز الأرقام المستخدمة في الشيفرة.

الدوال التابعة للكائن float

float.as_integer_ratio()‎

يعيد التابع زوجًا من الأعداد الصحيحة التي تكون نسبتها مساوية للعدد العشري تمامًا، ويكون المقام في هذه النسبة موجبًا.

float.is_integer()‎

يختبر التابع ما إذا كان العدد العشري محدودًا (finite) ويمتلك قيمة صحيحة أم لا.

float.hex()‎

يعيد التابع العدد العشري ذا الفاصلة العائمة كسلسلة نصية تتضمن التمثيل الست عشري لذلك العدد. هذا التابع هو تابع نسخة (instance method).

float.fromhex()‎

هذا التابع هو تابع صنف (class method) يعيد العدد العشري الذي يمكن تمثيله باستخدام السلسلة النصية التي تتضمن الصيغة الست عشرية.

انظر أيضًا

مصادر