दिलचस्प पोस्ट
ट्विटर बूटस्ट्रैप का उपयोग करके आप कंटेटेड सामग्री कैसे प्राप्त कर सकते हैं? आईआईएस 7 एपलीकेशन पूल में नेट फ्रेमवर्क 4.5 संस्करण कैसे सेट करें I एसएसआरएस 2008 आर 2 – एसएसआरएस 2012 – रिपोर्ट वीवर: सफारी और क्रोम में रिपोर्ट रिक्त हैं एंड्रॉइड में एसिंककास को पूरी तरह से मारने / हटाने / हटाने / रोक कैसे करें I एक कच्चा प्रकार क्या है और हम इसका उपयोग क्यों नहीं करना चाहिए? लाइन-लपेटें ढूँढना कैसे जाने में तारों को कुशलता से जोड़ना? मैं अजगर में रिकर्सिव फ़ंक्शन कैसे बना सकता हूं? एक एंड्रॉइड एप्लिकेशन को 'पुनः आरंभ' कैसे करें जावास्क्रिप्ट कॉल () और लागू () बनाम बाँध ()? फ़ाइल या विधानसभा को लोड नहीं किया जा सका HTML वेबपेज में मुझे सीएसएस और जावास्क्रिप्ट कोड कहां रखा जाना चाहिए? JavaScript में सरणी के माध्यम से लूप का सबसे तेज़ तरीका क्या है? वस्तु संपत्ति पर आधारित सरणी तत्व निकालें एंड्रॉइड: नई गतिविधि के साथ स्क्रीन स्विच करना या सामग्री दृश्य बदलना

स्ट्रिंग को सी में दो में परिवर्तित करना #

मेरे पास डबल-टाइप वैल्यूज़ ("value1 # value2 # value3 # …) के साथ एक स्ट्रिंग है। मैं इसे स्ट्रिंग तालिका में विभाजित करता हूँ। फिर मैं इस तालिका से एक तत्व को दोहरा कर बदलना चाहता हूं, और मुझे एक त्रुटि मिलती है। गलत है? मैं इस स्ट्रिंग (स्ट्रिंग ए) से दोहरे प्रकार के मानों से कैसे प्राप्त कर सकता हूं?

string a = "52.8725945#18.69872650000002#50.9028073#14.971600200000012#51.260062#15.5859949000000662452.23862099999999#19.372202799999250800000045#51.7808372#19.474096499999973#"; string[] tablicaLatLng = a.Split(new char[] { '#' }); for (int i = 0; i < tablicaLatLng.Length; i++) { Console.WriteLine(tablicaLatLng[i]); } Console.WriteLine(tablicaLatLng[0]); // 52.8725945 Convert.ToDouble(tablicaLatLng[0]); // error 

Solutions Collecting From Web of "स्ट्रिंग को सी में दो में परिवर्तित करना #"

आपके पहले डबल के मामले में (जैसा कि आप इसके लिए पूछते हैं): ऐसा लगता है कि यह संस्कृति से जुड़ी समस्या है, कोशिश करें कि इसे काम करना चाहिए

 Console.WriteLine(Convert.ToDouble("52,8725945")); 

इस स्थिति में आपको अपनी स्ट्रिंग को पार्स करना चाहिए जैसे कि double.Parse :

 double.Parse("52.8725945", System.Globalization.CultureInfo.InvariantCulture); 

दूसरी ओर आपके पास स्ट्रिंग में बाद में गलत डबल है।

अधिकांश लोग पहले से ही आपके सवालों के जवाब देने की कोशिश कर रहे हैं।
यदि आप अभी भी डिबगिंग करते हैं, तो क्या आपने इसका उपयोग करने के बारे में सोचा है:

 Double.TryParse(String, Double); 

इससे आपको वास्तविक पार्सिंग करने से पहले प्रत्येक स्ट्रिंग में क्या गलत है यह निर्धारित करने में मदद मिलेगी।
यदि आपके पास एक संस्कृति संबंधी समस्या है, तो आप इसका उपयोग करने पर विचार कर सकते हैं:

 Double.TryParse(String, NumberStyles, IFormatProvider, Double); 

यह http://msdn.microsoft.com/en-us/library/system.double.tryparse.aspx का उपयोग करने के तरीके पर वास्तव में एक अच्छा उदाहरण है।

यदि आपको एक लंबा, Int64.TryParse की आवश्यकता है तो भी उपलब्ध है: http://msdn.microsoft.com/en-us/library/system.int64.tryparse.aspx

उम्मीद है की वो मदद करदे।

 private double ConvertToDouble(string s) { char systemSeparator = Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator[0]; double result = 0; try { if (s != null) if (!s.Contains(",")) result = double.Parse(s, CultureInfo.InvariantCulture); else result = Convert.ToDouble(s.Replace(".", systemSeparator.ToString()).Replace(",", systemSeparator.ToString())); } catch (Exception e) { try { result = Convert.ToDouble(s); } catch { try { result = Convert.ToDouble(s.Replace(",", ";").Replace(".", ",").Replace(";", ".")); } catch { throw new Exception("Wrong string-to-double format"); } } } return result; } 

और सफलतापूर्वक पारित परीक्षाएं हैं:

  Debug.Assert(ConvertToDouble("1.000.007") == 1000007.00); Debug.Assert(ConvertToDouble("1.000.007,00") == 1000007.00); Debug.Assert(ConvertToDouble("1.000,07") == 1000.07); Debug.Assert(ConvertToDouble("1,000,007") == 1000007.00); Debug.Assert(ConvertToDouble("1,000,000.07") == 1000000.07); Debug.Assert(ConvertToDouble("1,007") == 1.007); Debug.Assert(ConvertToDouble("1.07") == 1.07); Debug.Assert(ConvertToDouble("1.007") == 1007.00); Debug.Assert(ConvertToDouble("1.000.007E-08") == 0.07); Debug.Assert(ConvertToDouble("1,000,007E-08") == 0.07); 

एक वर्ग को सार्वजनिक रूप से जोड़ें और इसे बहुत आसानी से कनवर्टटोइंट 32 () की तरह उपयोग करें

  using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> /// Summary description for Common /// </summary> public static class Common { public static double ConvertToDouble(string Value) { if (Value == null) { return 0; } else { double OutVal; double.TryParse(Value, out OutVal); if (double.IsNaN(OutVal) || double.IsInfinity(OutVal)) { return 0; } return OutVal; } } } 

फिर फ़ंक्शन को कॉल करें

 double DirectExpense = Common.ConvertToDouble(dr["DrAmount"].ToString()); 

आपके स्ट्रिंग में मैं देख रहा हूँ: 15.5859949000000662452.23862099999999 जो कि दोहरी नहीं है (इसमें दो दशमलव अंक हैं)। शायद यह सिर्फ एक वैध इनपुट त्रुटि है?

आप यह भी जान सकते हैं कि आपकी पिछली String खाली होगी, और उस स्थिति के लिए खाता होगा।