2008-09-22 22 views
47

उदाहरण के लिए, मानक विभाजन प्रतीक '/' राउंड शून्य करने के लिए:पायथन में डिवीजन ऑपरेटर का उपयोग करते समय मुझे दशमलव मान कैसे प्राप्त हो सकता है?

>>> 4/100 
0 

हालांकि, मैं यह 0.04 लौटना चाहते। मैं क्या उपयोग करूं?

उत्तर

102

तीन विकल्प हैं:: आप कि बस आदानों में अपने आप को एक दशमलव बिंदु का उपयोग करके ऐसा कर सकते हैं

>>> 4/float(100) 
0.04 
>>> 4/100.0 
0.04 

जो सी, सी ++, जावा आदि के रूप में ही व्यवहार है, या

:
>>> from __future__ import division 
>>> 4/100 
0.04 

तुम भी अजगर दुभाषिया के लिए तर्क -Qnew पारित करके इस व्यवहार को सक्रिय कर सकते हैं

$ python -Qnew 
>>> 4/100 
0.04 

दूसरा विकल्प पायथन 3.0 में डिफ़ॉल्ट होगा। यदि आप पुराने पूर्णांक विभाजन चाहते हैं, तो आपको // ऑपरेटर का उपयोग करना होगा।

संपादित करें: -Qnew के बारे में जोड़ा गया अनुभाग, ΤΖΩΤΖΙΟΥ के लिए धन्यवाद!

+1

कृपया यह भी जोड़ना 'पायथन की उपलब्धता -क्यू नया 'कमांड लाइन विकल्प आपके उत्तर को और अधिक पूरा करने के लिए। – tzot

+0

यह एक फ़्लोटिंग पॉइंट मान देता है, न कि दशमलव मान। ग्लिफ का जवाब देखें। – Jim

+0

आप स्रोत कोड में '__future__ आयात प्रभाग से' भी उपयोग कर सकते हैं। –

1

एक सरल मार्ग का प्रयास करें 4/100,0

या

4,0/100

3

आप चल बिन्दु मूल्यों, नहीं पूर्णांकों उपयोग करने के लिए अजगर बताने के लिए की जरूरत है।

>>> 4/100.0 
0.040000000000000001 
7

एक चल बिन्दु संख्या है, तो जैसे एक या अधिक शब्दों के दोनों बनाओ:

4.0/100.0 

वैकल्पिक रूप से, विशेषता यह है कि अजगर 3.0 में डिफ़ॉल्ट, 'सच विभाजन', करता है कि आप क्या चाहते हो जाएगा पर बारी । अपने मॉड्यूल या स्क्रिप्ट के शीर्ष पर, कार्य करें:

from __future__ import division 
0

आप किसी अन्य के साथ एक पूर्णांक विभाजित करके दशमलव मान प्राप्त नहीं कर सकते, आप allways एक पूर्णांक कि जिस तरह से (पूर्णांक तक छोटा कर दिया परिणाम) प्राप्त होंगे। दशमलव संख्या होने के लिए आपको कम से कम एक मान की आवश्यकता है।

+0

कृपया ध्यान दें कि यदि आप उपयोग करते हैं तो यह पाइथन 3.0 में अब और मामला नहीं होगा। –

23

अन्य उत्तरों सुझाव देते हैं कि फ़्लोटिंग-पॉइंट मान कैसे प्राप्त करें। इस के पास तुम क्या चाहते हो wlil है, यह सही नहीं होगा:

>>> import decimal 
>>> decimal.Decimal('4')/decimal.Decimal('100') 
Decimal("0.04") 

आप एक वस्तु दे देंगे कि:

>>> 0.4/100. 
0.0040000000000000001 

आप वास्तव में एक दशमलव मूल्य चाहते हैं, यह करने के यह सही ढंग से जानता है कि 41200 आधार 10 "0.04" है। फ़्लोटिंग-पॉइंट नंबर वास्तव में आधार 2 में हैं, यानी बाइनरी, दशमलव नहीं।

3

आप शायद पाइथन के decimal पैकेज को भी देखना चाहेंगे। यह अच्छा दशमलव परिणाम प्रदान करेगा।

>>> decimal.Decimal('4')/100 
Decimal("0.04") 
-4

कृपया उदाहरण

float tot=(float)31/7; 
+3

... यह भी पायथन नहीं है। – Moira

1

यहाँ हम दो संभावित मामलों इस तरह भविष्य पुस्तकालय से नीचे

from __future__ import division 

print(4/100) 
print(4//100) 
+0

python3 के लिए आपको आयात प्रभाग लाइन की आवश्यकता नहीं है केवल python2 के लिए प्रिंट स्टेटमेंट का उपयोग करें, आपको स्पष्ट रूप से आयात विवरण –

-3

आयात प्रभाग दे दिया है निम्नलिखित पर विचार:

+1

जोड़ने की आवश्यकता है कृपया विवरण जोड़ें कि यह मूल समस्या का समाधान क्यों करेगा, और शायद इस दृष्टिकोण के क्या नुकसान हैं। – Murphy

+0

@ मर्फी डिवीजन ऑपरेटर को पायथन के पुराने संस्करण में पूर्वस्थापित नहीं किया गया है। संस्करण 3.4,3.5 या 3.6 –

+0

का उपयोग करते समय आपको विभाजन आयात करने की आवश्यकता नहीं है @ मर्फी डिवीजन ऑपरेटर को पायथन के पुराने संस्करण में पूर्वस्थापित नहीं किया गया है। संस्करण 3.4,3.5 या 3.6 का उपयोग करते समय आपको विभाजन आयात करने की आवश्यकता नहीं है –