2011-04-10 14 views
12

मुझे एक साधारण समस्या है जिसे मैं समझने में सक्षम नहीं हूं। मेरे पास एक प्रोग्राम है जो इनपुट से फ्लोट पढ़ना चाहता है। समस्या यह है कि यह स्ट्रिंग के रूप में आ जाएगा और मैं अपने जीवन के लिए यह नहीं समझ सकता कि इसे एक फ्लोट में कैसे परिवर्तित किया जाए (हाँ मैं एक पूर्ण नौसिखिया हूं)।एफ # एक स्ट्रिंग को एक फ्लोट में परिवर्तित करना

let searchString = args.[0] 
let myFloat = hmm hmmm hmmmm 
+0

कोड को प्रारूपित करने के लिए प्रत्येक पंक्ति से चार रिक्त स्थान डालें, या इसे चुनें और संपादक में '{} 'बटन दबाएं। अधिक स्वरूपण सहायता के लिए, कृपया [मार्कडाउन संपादन सहायता] (http://stackoverflow.com/editing-help) पृष्ठ देखें। –

उत्तर

9

let myFloat = float searchString

कि के रूप में

सरल।

+1

@ थॉमस देखें। फ्लोट स्ट्रिंग प्रतिनिधित्व संस्कृति पर निर्भर करता है। –

+0

क्या होता है जब यह पार्स करने में विफल रहता है? – fahadash

+0

@fahadash 'System.FormatException' फेंक दिया गया है। –

15

conversion in the other way पर एक संबंधित प्रश्न था। यह थोड़ा मुश्किल है, क्योंकि फ्लोटिंग पॉइंट प्रारूप वर्तमान ओएस संस्कृति पर निर्भर करता है। float फ़ंक्शन इनवेरिएंट संस्कृति प्रारूप ("3.14" जैसे कुछ) पर संख्याओं पर काम करता है। यदि आपने संस्कृति-निर्भर प्रारूप में फ़्लोट किया है (उदाहरण के लिए कुछ देशों में "3,14"), तो आपको Single.Parse का उपयोग करना होगा।

उदाहरण के लिए, मेरी मशीन पर (चेक संस्कृति सेटिंग है, जो "3,14" का उपयोग करता है के साथ):

> float "1.1";; 
val it : float = 1.1 
> System.Single.Parse("1,1");; 
val it : float32 = 1.10000002f 

दोनों कार्यों अपवाद फेंक अगर दौर अन्य तरीके से कहा जाता है। Parse विधि में एक अधिभार भी है जो CultureInfo लेता है जहां आप स्पष्ट रूप से संस्कृति निर्दिष्ट कर सकते हैं

संबंधित मुद्दे