दिलचस्प पोस्ट
कुछ परियोजनाओं को आयात नहीं किया जा सकता क्योंकि वे पहले से ही एक्लिप्से में कार्यस्थान त्रुटि में मौजूद हैं क्या GROUP BY और DISTINCT के बीच कोई फ़र्क है? आर में सबसे अधिक विशिष्ट रंग कैसे उत्पन्न करें? यूनिकोड अजगर में स्ट्रिंग द्वारा क्यों घोषित करें? सी ++ स्टडी :: वेक्टर कैसे लागू होता है? ओपीएसएसएल :: SSL :: हेरोको पर एसएसईएलआरआर सीआईआईमेज / यूआईमेज लेज़ीली यूआई थ्रेड पर लोड हो रहा है हकलाना का कारण बनता है एमवीसी, ईएफ – डेटाकॉन्टेक्स्ट सिंगलटन इंस्टेंस प्रति-वेब-अनुरोध यूनिटी में आमंत्रण कॉल में अनाम विधि मैं विकसित क्रोम एक्सटेंशन को कैसे स्वत: पुनः लोड कर सकता हूं? किसी HTML पृष्ठ पर इनपुट को सुरक्षित करने के लिए सी # का उपयोग कैसे करें? मैं C ++ में सीएसवी फ़ाइल डेटा कैसे पढ़ सकता हूं और हेरफेर कर सकता हूं? नियमित अभिव्यक्ति के साथ आप केवल वैध रोमन अंक कैसे मेल करते हैं? पायथन 3 में क्यों नहीं str.translate काम करता है? संदर्भ से गुजारें या मूल्य से गुजारें?

मैं विभाजन को फ्लोटिंग पॉइंट के रूप में कैसे बांट सकता हूं? डिविजन 0 से नीचे गोलाई करता है

मेरे पास दो पूर्णांक मान हैं a और b , लेकिन मुझे फ्लोटिंग बिंदु में उनके अनुपात की आवश्यकता है। मुझे पता है कि a<b और मैं a/b गणना करना चाहता हूं, इसलिए यदि मैं पूर्णांक प्रभाग का उपयोग करता हूं तो मुझे हमेशा शेष का 0 मिलता a

मैं निम्नलिखित बिंदुओं में पायथन में एक फ्लोटिंग प्वाइंट नंबर कैसे कर सकता हूं?

 c = a / b 

वेब के समाधान से एकत्रित समाधान "मैं विभाजन को फ्लोटिंग पॉइंट के रूप में कैसे बांट सकता हूं? डिविजन 0 से नीचे गोलाई करता है"

 >>> from __future__ import division >>> a = 4 >>> b = 6 >>> c = a / b >>> c 0.66666666666666663 

आप c = a / float(b) फ्लोट डालें। अगर अंश या निचला एक फ्लोट है, तो परिणाम भी होगा।


एक चेतावनी: जैसा कि टिप्पणीकारों ने बताया है, यदि यह कोई पूर्णांक या फ्लोटिंग-बिंदु संख्या (या एक का प्रतिनिधित्व करने वाला स्ट्रिंग) के अलावा कुछ और हो सकता है, तो यह काम नहीं करेगा। यदि आप अन्य प्रकारों (जैसे जटिल संख्या) के साथ काम कर रहे हैं, तो आपको उन लोगों की जांच करने या एक अलग विधि का उपयोग करने की आवश्यकता होगी।

 c = a / (b * 1.0) 

मैं पायथन में फ्लोटिंग प्वाइंट होने के लिए विभाजन को कैसे बाध्य कर सकता हूं?

मेरे पास दो पूर्णांक मान हैं a और b, लेकिन मुझे फ्लोटिंग बिंदु में उनके अनुपात की आवश्यकता है। मुझे पता है कि एक <बी और मैं एक / बी की गणना करना चाहता हूं, इसलिए यदि मैं पूर्णांक प्रभाग का उपयोग करता हूं तो मुझे हमेशा शेष का 0 मिलता है।

मैं निम्नलिखित बिंदुओं में पायथन में एक फ्लोटिंग प्वाइंट नंबर कैसे कर सकता हूं?

 c = a / b 

यहां वास्तव में क्या पूछा जा रहा है:

"मैं सच विभाजन कैसे लागू कर सकता हूँ जैसे कि a / b एक अंश वापस करेगा?"

पायथन 3 पर अपग्रेड करें

पायथन 3 में, सच डिवीजन प्राप्त करने के लिए, आप बस a / b

 >>> 1/2 0.5 

तल विभाजन, पूर्णांक के लिए क्लासिक विभाजन व्यवहार, अब a // b :

 >>> 1//2 0 >>> 1//2.0 0.0 

हालाँकि, आप पायथन 2 का उपयोग करके फंस सकते हैं, या आप कोड लिख सकते हैं जो 2 और 3 दोनों में काम करना चाहिए।

यदि पायथन 2 का उपयोग करना

पायथन 2 में, यह इतना सरल नहीं है क्लासिक पायथन 2 डिवीजन से निपटने के कुछ तरीके दूसरों की तुलना में बेहतर और अधिक मजबूत हैं

सिफारिश की

आप किसी भी मॉड्यूल में शीर्ष पर निम्न आयात के साथ पायथन 3 डिवीजन व्यवहार प्राप्त कर सकते हैं:

 from __future__ import division 

जो तब पायथन 3 शैली डिवीजन को पूरे मॉड्यूल पर लागू करता है। यह किसी भी बिंदु पर अजगर खोल में भी काम करता है। पायथन 2 में:

 >>> from __future__ import division >>> 1/2 0.5 >>> 1//2 0 >>> 1//2.0 0.0 

यह वास्तव में सबसे अच्छा समाधान है क्योंकि यह सुनिश्चित करता है कि आपके मॉड्यूल में कोड पायथन 3 से अधिक संगत है।

अन्य विकल्प

यदि आप इसे पूरे मॉड्यूल पर लागू नहीं करना चाहते हैं, तो आप कुछ कामकाज के लिए सीमित हैं। सबसे लोकप्रिय एक फ्लैप के लिए एक ऑपरेंड को मजबूर करना है। एक मजबूत समाधान a / (b * 1.0) । एक ताजा पायथन खोल में:

 >>> 1/(2 * 1.0) 0.5 

इसके अलावा operator मॉड्यूल operator.truediv(a, b) . truediv operator.truediv(a, b) से truediv मजबूत है, लेकिन यह संभावना धीमी है क्योंकि यह फ़ंक्शन कॉल है:

 >>> from operator import truediv >>> truediv(1, 2) 0.5 

सिफारिश नहीं की गई

आम तौर पर देखा जाता है a / float(b) यह एक TypeError बढ़ाएगा यदि b एक जटिल संख्या है। चूंकि जटिल संख्याओं के विभाजन को परिभाषित किया गया है, इसलिए यह मेरे लिए समझ में आता है कि विभाजक के लिए एक जटिल संख्या पारित होने पर विभाजन विफल नहीं हो पाता।

 >>> 1 / float(2) 0.5 >>> 1 / float(2j) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can't convert complex to float 

यह मुझे समझ में नहीं आता है कि आपके कोड को अधिक भंगुर बना दिया जाए।

आप Python को -Qnew फ्लैग के साथ भी चला सकते हैं, लेकिन इसमें सभी पायथन 3 के व्यवहार के साथ सभी मॉड्यूल निष्पादित करने का नकारात्मक पक्ष है, और आपके कुछ मॉड्यूल क्लासिक डिवीजन की उम्मीद कर सकते हैं, इसलिए यह अनुशंसित नहीं है। लेकिन प्रदर्शित करने के लिए:

 $ python -Qnew -c 'print 1/2' 0.5 $ python -Qnew -c 'print 1/2j' -0.5j 

पायथन 3.x में, एकल स्लैश ( / ) हमेशा सच्चा (गैर कटौती) विभाजन का मतलब है। ( // ऑपरेटर का उपयोग विभाजन को छोडने के लिए किया जाता है।) पायथन 2.x (2.2 और ऊपर) में, आप इसे एक

 from __future__ import division 

अपने मॉड्यूल के शीर्ष पर

बस अस्थायी बिंदु प्रारूप में विभाजन के लिए किसी भी मापदंड को बनाने से भी फ़्लोटिंग-पॉइंट में आउटपुट का उत्पादन होता है

उदाहरण:

 >>> 4.0/3 1.3333333333333333 

या,

 >>> 4 / 3.0 1.3333333333333333 

या,

 >>> 4 / float(3) 1.3333333333333333 

या,

 >>> float(4) / 3 1.3333333333333333 

फ़्लोटिंग पॉइंट नंबरों को इंगित करने के लिए डॉट ( . ) जोड़ें

 >>> 4/3. 1.3333333333333333 

या

 >>> from __future__ import division >>> 4/3 1.3333333333333333 

यह भी काम करेगा

 >>> u=1./5 >>> print u 

0.2

यदि आप "सच्चा" (फ्लोटिंग प्वाइंट) विभाजन का उपयोग डिफ़ॉल्ट रूप से करना चाहते हैं, तो एक कमांड लाइन फ्लैग है:

 python -Q new foo.py 

कुछ कमियां हैं (पीईपी से):

यह तर्क दिया गया है कि डिफ़ॉल्ट को बदलने के लिए एक कमांड लाइन विकल्प बुरा है यह गलत हाथों में निश्चित रूप से खतरनाक हो सकता है: उदाहरण के लिए, 3 पार्टी लाइब्रेरी पैकेज को जोड़ना असंभव होगा, जिसके लिए दूसरे को आवश्यकता होती है- क्वॉल्ड

आप अन्य फ्लैग मानों के बारे में अधिक जान सकते हैं जो कि बदलाव / चेतावनी देते हैं- अजगर मैन पेज को देखते हुए विभाजन के व्यवहार के बारे में।

विभाजन परिवर्तनों पर पूर्ण विवरण के लिए पढ़ें: पीईपी 238 – डिवीजन ऑपरेटर बदलना

 from operator import truediv c = truediv(a, b) 

यदि आप दो पूर्णांक वाले अजगर का विभाजन करते हैं तो आपको एक पूर्णांक लौटा देगा, फिर आपको करना होगा:

 c = float(a)/b 

या

 c = a/float(b) 

और फिर एक float प्रकार के रूप में c प्राप्त करें

 from operator import truediv c = truediv(a, b) 

जहां एक लाभांश है और बी विभाजक है यह कार्य आसान है जब दो पूर्णांक के विभाजन के बाद एक फ्लोट होता है।

यह भी काम करेगा

यू = 1. / 5 प्रिंट यू

 0.2 

उत्तर 24 दिसम्बर 13 को 1 9:58 गौरव आगरवाल 6,7172279140

धन्यवाद गौरा, यह चाल करता है और काफी साफ समाधान है। यदि संख्या और दशमलव दोनों चर हैं, तो "समाधान" 1 हो सकता है। भागफल द्वारा।

उदाहरण:

 aa = 2 bb = 3 aa / bb = 0 1. * aa / bb = 0.6666666666666666 

😉

मैक्स – इटली