दिलचस्प पोस्ट
पायथन 3 में मैं कैसे .decode ('string-escape') करूँ? समय के लिए कई असफल लॉगिन के लिए अनुरोध को ब्लॉक करें एंड्रॉइड कलर पिकर सॉफ़्टवेयर संस्करणों की तरह, डॉट से अलग किए गए नंबरों की सूची छंटनी जावास्क्रिप्ट रेगुलर एक्सप्रेशन ईमेल सत्यापन मुद्रण वर्ण और उनके एएससीआईआई कोड सी में स्विफ्ट 4 – UIApplication.registerForRemoteNotifications () को मुख्य थ्रेड से ही कॉल किया जाना चाहिए जावास्क्रिप्ट में क्लास कैसे जोड़ / निकालें? खिड़की.क्योंकि क्रोम में काम नहीं कर रहा है एक सरणी में सबसे बड़ा मूल्य का सूचकांक लौटें मूल कक्षा से बाल वर्ग में कास्ट करने में असमर्थ मैं कोडा के माध्यम से पायथन ओपनसीवी कैसे स्थापित करूं? PHP – डॉट नेशन कुंजी के साथ 2 डी सरणी के लिए बहुआयामी सरणी को परिवर्तित करें कैसे जावा में एक निर्देशिका में एक फ़ाइल बनाने के लिए? जावा में एक ब्राउज़र एम्बेड करने का कोई तरीका है?

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

मेरे पास डबल-टाइप वैल्यूज़ ("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 खाली होगी, और उस स्थिति के लिए खाता होगा।