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

من موسوعة حسوب
ط إضافة تصنيفات.
لا ملخص تعديل
سطر 2: سطر 2:
الأعداد العشرية (ذات الفاصلة العائمة floating point) هي الأعداد التي تتضمن فاصلة عشرية أو علامة أسية:<syntaxhighlight lang="python3">
الأعداد العشرية (ذات الفاصلة العائمة floating point) هي الأعداد التي تتضمن فاصلة عشرية أو علامة أسية:<syntaxhighlight lang="python3">
>>> x = 2.5
>>> x = 2.5
>>> y = -1.609
>>> y = -1.609
>>> z = 3e4
>>> z = 3e4
>>> print(z)
>>> print(z)
30000.0
30000.0
</syntaxhighlight>
</syntaxhighlight>


سطر 18: سطر 12:


>>> sys.float_info
>>> 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)
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)


</syntaxhighlight>
</syntaxhighlight>
سطر 27: سطر 19:
تعيد الدالة <code>float()‎</code> عددًا عشريًا من الرقم أو السلسلة النصية التي تمرّر إليها. إن كان الوسيط سلسلة نصية، فيجب أن يتضمن عددًا عشريًا، ويمكن أن يكون مسبوقًا بإشارتي <code>'+'</code> أو <code>'-'</code>، ولا تؤثر إشارة <code>'+'</code> على القيمة الناتجة. يمكن للوسيط الممرّر لهذه الدالة أن يكون سلسلة نصية تحمل قيمة <code>NaN</code>  (اختصار not-a-number) أو موجب أو سالب ما لا نهاية <code>infinity</code>. وبصورة أدق يجب أن تطابق صيغة الوسيط الممرر إلى الدالة الصيغة التالية بعد حذف المسافات البيضاء التي تحيط بالوسيط:<syntaxhighlight lang="python3">
تعيد الدالة <code>float()‎</code> عددًا عشريًا من الرقم أو السلسلة النصية التي تمرّر إليها. إن كان الوسيط سلسلة نصية، فيجب أن يتضمن عددًا عشريًا، ويمكن أن يكون مسبوقًا بإشارتي <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"
nan ::= "nan"
nan ::= "nan"
numeric_value ::= floatnumber | infinity | nan
numeric_value ::= floatnumber | infinity | nan
numeric_string ::= [sign] numeric_value
numeric_string ::= [sign] numeric_value
</syntaxhighlight>
</syntaxhighlight>
سطر 50: سطر 38:
<syntaxhighlight lang="python3">
<syntaxhighlight lang="python3">
>>> float('+1.23')
>>> float('+1.23')
1.23
1.23
>>> float(' -12345\n')
>>> float(' -12345\n')
-12345.0
-12345.0
>>> float('1e-003')
>>> float('1e-003')
0.001
0.001
>>> float('+1E6')
>>> float('+1E6')
1000000.0
1000000.0
>>> float('-Infinity')
>>> float('-Infinity')
-inf
-inf
</syntaxhighlight>
</syntaxhighlight>


== تغيير في الإصدار 3.6 ==
== تغيير في الإصدار 3.6 ==
أصبح بالإمكان تجميع الأعداد باستخدام الشرطة السفلية كما هو الحال مع رموز الأرقام المستخدمة في الشيفرة.
أصبح بالإمكان تجميع الأعداد باستخدام الشرطة السفلية كما هو الحال مع رموز الأرقام المستخدمة في الشيفرة.
== الدوال التابعة للكائن <code>float</code> ==
=== <code>[[Python/float/as_integer_ratio|float.as_integer_ratio()‎]]</code> ===
=== <code>[[Python/float/is_integer|float.is_integer()‎]]</code> ===
=== <code>[[Python/float/hex|float.hex()‎]]</code> ===
=== <code>[[Python/float/fromhex|float.fromhex()‎]]</code> ===


== مصادر ==
== مصادر ==

مراجعة 19:20، 16 مايو 2018

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

>>> x = 2.5
>>> y = -1.609
>>> z = 3e4
>>> print(z)
30000.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()‎

float.hex()‎

float.fromhex()‎

مصادر