سؤال
الإدخال الخاص بي هو 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.