2008-09-15 13 views
26

में तैरने के लिए वैज्ञानिक नोटेशन स्ट्रिंग से कनवर्ट करें वैज्ञानिक संकेत संख्या जैसे "1.234567E-06" से परिवर्तित करने का उचित तरीका सी # का उपयोग कर एक फ़्लोटिंग पॉइंट वैरिएबल में परिवर्तित करने का क्या तरीका है?सी #

उत्तर

50
Double.Parse("1.234567E-06", System.Globalization.NumberStyles.Float); 
+0

विल पर दाएं। धन्यवाद। – odbasta

+13

काम नहीं करेगा अगर वर्तमान संस्कृति का दशमलव विभाजक '.' नहीं है। तो हमेशा काम करने का दृष्टिकोण या तो 'नंबर स्टाइल। किसी भी' या (बेहतर) बल 'InvariantCulture' का उपयोग कर रहा है:' डबल। पर्स ("1.234567 ई -06", संख्या स्टाइल। फ्लोट, संस्कृतिइन्फो। इन्विरिएंटकल्चर); –

+0

ध्यान दें कि यदि आप tack इस प्रक्रिया के अंत में एक .ToString() कॉल करें, यह वैज्ञानिक नोटेशन वापस करेगा, न कि केवल अंकों की स्ट्रिंग। मुझे फ्लोट प्रारूप को सही ढंग से बनाने के लिए .toString() कॉल में एक प्रारूप स्ट्रिंग पैरामीटर ("0.0000") शामिल करने की आवश्यकता थी। –

11

इसके अलावा

Double.TryParse("1.234567E-06", System.Globalization.NumberStyles.Float, out MyFloat); 

इससे यह सुनिश्चित होगा MyFloat 0 यदि मान पर सेट है कि, का उपयोग कर जो भी कारण के लिए विचार, रूपांतरण नहीं किया जा सकता है। या आप Double.Parse() उदाहरण को Try..Catch ब्लॉक में लपेट सकते हैं और अपवाद का पता लगाए जाने पर आपके चयन के मूल्य पर MyFloat सेट कर सकते हैं।

+17

आप असफल रूपांतरण को इंगित करने के लिए MyFloat 0 पर भरोसा नहीं करना चाहते हैं, आप बूल रिटर्न वैल्यू पर भरोसा करना चाहते हैं। – Carl