पायथन में दो दशमलव स्थानों के साथ एक फ्लोट प्रदर्शित करें


136

मेरे पास एक फ़ंक्शन है जो फ्लोट तर्क (आमतौर पर पूर्णांक या एक महत्वपूर्ण अंक के साथ दशमलव) लेता है, और मुझे दो दशमलव स्थानों (5 -> 5.00, 5.5 -> 5.50, आदि) के साथ एक स्ट्रिंग में मानों को आउटपुट करने की आवश्यकता है। मैं पायथन में यह कैसे कर सकता हूं?

जवाबों:


148

आप उसके लिए स्ट्रिंग स्वरूपण ऑपरेटर का उपयोग कर सकते हैं:

>>> '%.2f' % 1.234
'1.23'
>>> '%.2f' % 5.0
'5.00'

ऑपरेटर का परिणाम एक स्ट्रिंग है, इसलिए आप इसे एक चर, प्रिंट आदि में संग्रहीत कर सकते हैं।


273

चूँकि यह पोस्ट कुछ समय के लिए यहाँ हो सकती है, इसलिए अजगर 3 वाक्यविन्यास को भी इंगित करता है:

"{:.2f}".format(5)

9
पूर्णता के लिए, यदि दशमलव दशमलव है, उदाहरण के लिए d=3, तो वाक्य रचना है"{:.{}f}".format(5, d)
jurajb

74

च-स्ट्रिंग प्रारूपण:

यह पायथन 3.6 में नया था - स्ट्रिंग को हमेशा की तरह उद्धरण चिह्नों में रखा गया है, f'...उसी तरह से आप r'...कच्चे स्ट्रिंग के लिए तैयार होंगे। फिर आप अपने स्ट्रिंग, चर, संख्या, ब्रेसिज़ के अंदर जो कुछ भी रखना चाहते हैं उसे रखें f'some string text with a {variable} or {number} within that text'- और पायथन पिछले स्ट्रिंग प्रारूपण विधियों के साथ मूल्यांकन करता है, सिवाय इसके कि यह विधि बहुत अधिक पठनीय है।

>>> a = 3.141592
>>> print(f'My number is {a:.2f} - look at the nice rounding!')

My number is 3.14 - look at the nice rounding!

आप इस उदाहरण में देख सकते हैं कि हम इसी तरह के दशमलव स्थानों के साथ पिछले स्ट्रिंग प्रारूपण विधियों के साथ प्रारूपित करते हैं।

एनबी aएक संख्या, चर, या यहां तक ​​कि एक उदाहरण हो सकता है f'{3*my_func(3.14):02f}'

आगे बढ़ते हुए, नए कोड के साथ मैं सामान्य% s या str.format () विधियों पर f- स्ट्रिंग्स पसंद करता हूं क्योंकि f-strings अधिक पठनीय हो सकता है, और अक्सर बहुत तेज होता है


6

स्ट्रिंग स्वरूपण:

print "%.2f" % 5

1
लेकिन यह सब तार हैं, इसलिए iam उन पर कोई गणितीय कार्य करने में सक्षम नहीं है
14'14 को

@ गिटार खाली दशमलव स्थानों को जोड़ने से कोई फर्क नहीं पड़ता अगर आपको बस उन पर गणितीय कार्य करने की आवश्यकता है। आप देख सकते हैं math.floor, math.ceilयाround
Steen Schütt

5

अजगर स्ट्रिंग प्रारूपण का उपयोग करना।

>>> "%0.2f" % 3
'3.00'

4

स्ट्रिंग स्वरूपण:

a = 6.789809823
print('%.2f' %a)

या

print ("{0:.2f}".format(a)) 

गोल समारोह का उपयोग किया जा सकता है:

print(round(a, 2))

गोल () के बारे में अच्छी बात यह है कि, हम इस परिणाम को दूसरे चर में संग्रहीत कर सकते हैं, और फिर इसका उपयोग अन्य उद्देश्यों के लिए कर सकते हैं।

b = round(a, 2)
print(b)

5
के लिए नीचा दिखाना round। इसे सिर्फ प्रदर्शन के उद्देश्य से इस्तेमाल नहीं किया जाना चाहिए ।
विम

@ मैं आपकी टिप्पणी का सम्मान करता हूं, लेकिन यह उत्तर किसी की आवश्यकता को पूरा करने के लिए हैं।
debaonline4u

2
@ debaonline4u wim सही है। round(5.0001, 2)-> 5.0, नहीं'5.00'
१rea:


3

यदि आप वास्तव में केवल अलग-अलग उपयोग प्रारूप () प्रदर्शित करने के बजाय संख्या को स्वयं बदलना चाहते हैं

इसे 2 दशमलव स्थानों पर प्रारूपित करें:

format(value, '.2f')

उदाहरण:

>>> format(5.00000, '.2f')
'5.00'

0

मुझे पता है कि यह एक पुराना प्रश्न है, लेकिन मैं स्वयं इसका उत्तर खोजने में संघर्ष कर रहा था। यहाँ मैं क्या लेकर आया हूँ:

अजगर 3:

>>> num_dict = {'num': 0.123, 'num2': 0.127}
>>> "{0[num]:.2f}_{0[num2]:.2f}".format(num_dict) 
0.12_0.13

3
नमस्ते, ढेर अतिप्रवाह में आपका स्वागत है। जब किसी प्रश्न का उत्तर दिया जा रहा हो, जिसमें पहले से ही कई उत्तर हों, तो कृपया कुछ अतिरिक्त जानकारी जोड़ना सुनिश्चित करें कि जो प्रतिक्रिया आप प्रदान कर रहे हैं, वह मूल क्यों है और क्या मूल पोस्टर द्वारा पहले ही वीटो लगा दिया गया है। यह "कोड-ओनली" उत्तरों में विशेष रूप से महत्वपूर्ण है जैसे कि आपने जो प्रदान किया है।
chb

-1

पायथन 3 सिंटैक्स का उपयोग करना:

print('%.2f' % number)

1
% -फॉर्म 3 पायथन के लिए नया नहीं है, और पहले से ही 6 साल पहले से इस जवाब से आच्छादित है
wjandrea

-1

यदि आप कॉलिंग इनपुट के समय दो दशमलव स्थानों के साथ एक फ्लोटिंग पॉइंट वैल्यू प्राप्त करना चाहते हैं,

इसे देखें ~

a = eval(format(float(input()), '.2f'))   # if u feed 3.1415 for 'a'.
print(a)                                  # output 3.14 will be printed.

evalजब आप बस कर सकते हैं तो एक स्ट्रिंग क्यों round? वैसे भी यह ठीक से काम नहीं करता है क्योंकि यदि आप भोजन करते हैं 5, तो आपको ओपी चाहता है के 5.0बजाय मिलता 5.00है।
वंदरेद्र

यह भी nanऔर के लिए काम नहीं करता है inf
११:२२
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.