سؤال

الإدخال الخاص بي هو 3.23، ولكن عندما أستخدم تعويم عليه، يصبح 3.2،

عندما يكون الإدخال الخاص بي هو 3.00، عندما أفعل ذلك، يصبح 3.0

عندما أتحول إلى تعويم من سلسلة، ما زلت أريد أن يكون 3.00 وليس 3.0 هل من الممكن؟ أريد أن أعرف الكود لجعله ممكنا، وعندما أقوم بمشكلة أن النقطة العشرية حتى مسألة رقمين، 3.23 أفضل من 3.2، لمزيد من الدقة

هل كانت مفيدة؟

المحلول

أفترض أن ما تريده هو تحويل تعويم إلى سلسلة مع عدد الكسور العشرية التي تريدها. يمكنك تحقيق ذلك باستخدام٪ .3f (هنا 3 هو عدد الكسور العشرية التي تريد طباعتها. فمثلا:

>>> print "Value: %.2f" % 3.0000

القيمة: 3.00.

نصائح أخرى

نظرا لأن هذا الموضوع هو أولا على الكلمات "سلسلة تكوين ثعبان عشرية"، أعتقد أنه من الجيد تقديم إجابة أكثر حداثة:

>>> P=34.3234564
>>> string="{:.2f}".format(P)
>>> string
'34.32'

إذا كنت تريد الدقة العشرية استخدام الثعبان decimal وحدة:

from decimal import Decimal
x = Decimal('3.00')
print x

هذا يطبع:

Decimal('3.00')

إذا كنت ترغب في طباعة رقم بعيد إلى الدقة المرغوبة، يمكنك استخدام رموز تنسيق الإخراج مثل ما يلي:

على افتراض X = 3.125

print "%.1f" % (x)    # prints 3.1
print "%.2f" % (x)    # prints 3.12
print "%.3f" % (x)    # prints 3.125
print "%.4f" % (x)    # prints 3.1250

سيعمل هذا في Python 2.6 (أعتقد أنهم غيروا وظيفة الطباعة في الإصدار 3).

يجب أن تدرك أيضا أن الأرقام العائمة لا يمكن تخزينها إلا بدقة معينة، لذلك في بعض الأحيان لن تحصل على نفس الرقم بالضبط. على سبيل المثال 0.1 قد يتم تخزين شيء مثل 0.9999999987.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top