उदाहरण के लिए, मानक विभाजन प्रतीक '/' राउंड शून्य करने के लिए:पायथन में डिवीजन ऑपरेटर का उपयोग करते समय मुझे दशमलव मान कैसे प्राप्त हो सकता है?
>>> 4/100
0
हालांकि, मैं यह 0.04 लौटना चाहते। मैं क्या उपयोग करूं?
उदाहरण के लिए, मानक विभाजन प्रतीक '/' राउंड शून्य करने के लिए:पायथन में डिवीजन ऑपरेटर का उपयोग करते समय मुझे दशमलव मान कैसे प्राप्त हो सकता है?
>>> 4/100
0
हालांकि, मैं यह 0.04 लौटना चाहते। मैं क्या उपयोग करूं?
तीन विकल्प हैं:: आप कि बस आदानों में अपने आप को एक दशमलव बिंदु का उपयोग करके ऐसा कर सकते हैं
>>> 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
के बारे में जोड़ा गया अनुभाग, ΤΖΩΤΖΙΟΥ के लिए धन्यवाद!
4,0/100
एक सरल मार्ग का प्रयास करें 4/100,0
या
4,0/100
आप चल बिन्दु मूल्यों, नहीं पूर्णांकों उपयोग करने के लिए अजगर बताने के लिए की जरूरत है।
>>> 4/100.0
0.040000000000000001
एक चल बिन्दु संख्या है, तो जैसे एक या अधिक शब्दों के दोनों बनाओ:
4.0/100.0
वैकल्पिक रूप से, विशेषता यह है कि अजगर 3.0 में डिफ़ॉल्ट, 'सच विभाजन', करता है कि आप क्या चाहते हो जाएगा पर बारी । अपने मॉड्यूल या स्क्रिप्ट के शीर्ष पर, कार्य करें:
from __future__ import division
आप किसी अन्य के साथ एक पूर्णांक विभाजित करके दशमलव मान प्राप्त नहीं कर सकते, आप allways एक पूर्णांक कि जिस तरह से (पूर्णांक तक छोटा कर दिया परिणाम) प्राप्त होंगे। दशमलव संख्या होने के लिए आपको कम से कम एक मान की आवश्यकता है।
कृपया ध्यान दें कि यदि आप उपयोग करते हैं तो यह पाइथन 3.0 में अब और मामला नहीं होगा। –
अन्य उत्तरों सुझाव देते हैं कि फ़्लोटिंग-पॉइंट मान कैसे प्राप्त करें। इस के पास तुम क्या चाहते हो wlil है, यह सही नहीं होगा:
>>> import decimal
>>> decimal.Decimal('4')/decimal.Decimal('100')
Decimal("0.04")
आप एक वस्तु दे देंगे कि:
>>> 0.4/100.
0.0040000000000000001
आप वास्तव में एक दशमलव मूल्य चाहते हैं, यह करने के यह सही ढंग से जानता है कि 41200 आधार 10 "0.04" है। फ़्लोटिंग-पॉइंट नंबर वास्तव में आधार 2 में हैं, यानी बाइनरी, दशमलव नहीं।
आप शायद पाइथन के decimal पैकेज को भी देखना चाहेंगे। यह अच्छा दशमलव परिणाम प्रदान करेगा।
>>> decimal.Decimal('4')/100
Decimal("0.04")
यहाँ हम दो संभावित मामलों इस तरह भविष्य पुस्तकालय से नीचे
from __future__ import division
print(4/100)
print(4//100)
python3 के लिए आपको आयात प्रभाग लाइन की आवश्यकता नहीं है केवल python2 के लिए प्रिंट स्टेटमेंट का उपयोग करें, आपको स्पष्ट रूप से आयात विवरण –
आयात प्रभाग दे दिया है निम्नलिखित पर विचार:
जोड़ने की आवश्यकता है कृपया विवरण जोड़ें कि यह मूल समस्या का समाधान क्यों करेगा, और शायद इस दृष्टिकोण के क्या नुकसान हैं। – Murphy
@ मर्फी डिवीजन ऑपरेटर को पायथन के पुराने संस्करण में पूर्वस्थापित नहीं किया गया है। संस्करण 3.4,3.5 या 3.6 –
का उपयोग करते समय आपको विभाजन आयात करने की आवश्यकता नहीं है @ मर्फी डिवीजन ऑपरेटर को पायथन के पुराने संस्करण में पूर्वस्थापित नहीं किया गया है। संस्करण 3.4,3.5 या 3.6 का उपयोग करते समय आपको विभाजन आयात करने की आवश्यकता नहीं है –
कृपया यह भी जोड़ना 'पायथन की उपलब्धता -क्यू नया 'कमांड लाइन विकल्प आपके उत्तर को और अधिक पूरा करने के लिए। – tzot
यह एक फ़्लोटिंग पॉइंट मान देता है, न कि दशमलव मान। ग्लिफ का जवाब देखें। – Jim
आप स्रोत कोड में '__future__ आयात प्रभाग से' भी उपयोग कर सकते हैं। –