2009-09-15 12 views
15

मैं कुछ प्रतिशत मान पैड करना चाहता हूं ताकि दशमलव स्थान से पहले 3 इकाइयां हों। स्याही के साथ मैं '% 03d' का उपयोग कर सकता हूं - क्या फ्लोट्स के बराबर है?पैड पायथन तैरता

'% .3f' दशमलव स्थान के बाद काम करता है लेकिन '% 03f' कुछ भी नहीं करता है।

उत्तर

33

'% 03.1f' काम करता है (1 किसी भी नंबर, या खाली स्ट्रिंग हो सकता है):

>>> "%06.2f"%3.3 
'003.30' 

>>> "%04.f"%3.2 
'0003' 

ध्यान दें कि क्षेत्र चौड़ाई दशमलव और दशमलव अंक भी शामिल है।

+3

यदि मान ऋणात्मक है, अग्रणी '- 'फ़ील्ड चौड़ाई गिनती में से एक का उपभोग करेगा - "% 06.2f"% -3.3 "-03.30" देता है, इसलिए यदि आप मी ऋणात्मक होने पर भी 3 अंक हैं, आपको फ़ील्ड चौड़ाई में एक और जोड़ना होगा। आप '*' फ़ील्डविड्थ मान का उपयोग करके ऐसा कर सकते हैं, और एक गणना मूल्य पास कर सकते हैं: value = -3.3; प्रिंट करें "% 0 * .2f"% (6+ (मान <0), मान) – PaulMcG

+0

यहां @PaulMcGuire का अर्थ है, लेकिन 'प्रारूप' का उपयोग करना: 'value = -3.3; प्रिंट करें "{टी: 0 {प्रारूप} .2 एफ}" प्रारूप (प्रारूप = 6 + (मूल्य <0), टी = मान) '। – Adobe

7

आप ज़फिल का भी उपयोग कर सकते हैं।

str(3.3).zfill(5) 
'003.3' 
+0

यह उत्तर स्ट्रिंग स्वरूपण से अधिक पायथनिक है। – refi64

4

वैकल्पिक रूप से, आप उपयोग करना .format चाहते हैं:

   {:6.1f} 
       ↑ ↑ 
       | | 
# digits to pad | | # of decimal places to display 

Copypasta: {:6.1f}

उपयोग के उदाहरण:

'Num: {:6.1f}'.format(number) 
संबंधित मुद्दे