मैं पायथन में एक स्ट्रिंग को डबल में कैसे परिवर्तित करूं?


218

मैं जानना चाहूंगा कि एक स्ट्रिंग वाले अंक को दोहरे में कैसे परिवर्तित किया जाए।


2
डुप्लीकेट: stackoverflow.com/questions/468639/…
S.Lott

वह अजगर डबल नहीं है। एक अजगर डबल में असीमित क्षमता होती है।

जवाबों:


316
>>> x = "2342.34"
>>> float(x)
2342.3400000000001

तुम वहाँ जाओ। फ्लोट का उपयोग करें (जो व्यवहार करता है और सी, सी ++, या जावा डबल के समान सटीक है)।


38
या, विशेष रूप से, पायथन फ्लोट सी डबल्स हैं।
हबनबीत

1
बाह ने डबल के बजाय फ्लोट का इस्तेमाल किया। अब मेरा कोड .0000000001 से बंद है, जो चोट पहुंचाता है
Evorlor

2
संयोग से, यह घातांक संकेतन के साथ भी काम करता है। उदाहरण: float('7.5606e-08')अपेक्षित अजगर फ्लोट का उत्पादन करता है।
drevicko

2
मेरी अजगर (संस्करण 2.7.10), जब मैं आवंटित साथ >>> x = "2342.34" और परिवर्तित फ्लोट करने के लिए >>> float(x) मैं करने के 2342.34बजाय 2342.3400000000001@Mongoose द्वारा रिपोर्ट
Bruce_Warrior

>>> 0.1 + 0.2डबल के लिए उपयोग करें । >>> 0.1 + 0.6तैरने के लिए।
user1510539

50

दशमलव ऑपरेटर आपके लिए जो कुछ भी देख रहे हैं उसके अनुरूप अधिक हो सकता है:

>>> from decimal import Decimal
>>> x = "234243.434"
>>> print Decimal(x)
234243.434

2

ध्यान रखें कि यदि आपके स्ट्रिंग नंबर में 15 से अधिक महत्वपूर्ण अंक हैं, तो float(s)यह गोल हो जाएगा। उन मामलों में इसका उपयोग करना बेहतर हैDecimal

यहाँ एक स्पष्टीकरण और कुछ कोड नमूने हैं: https://docs.python.org/3/library/sys.html#sys.float_info

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