मैं जानना चाहता हूं कि मुझे कुछ याद आ रहा है या नहीं ... मैं मानक ग्रेट ब्रिटिश संस्कृति के तहत चल रहा हूं।Double.TryParse() NumberFormatInfo.NumberGroupSizes को अनदेखा करता है?
Double result = 0;
if (Double.TryParse("1,2,3", NumberStyles.Any, CultureInfo.CurrentCulture, out result))
{
Console.WriteLine(result);
}
अपेक्षित आउटपुट कुछ भी नहीं होगा ... "1,2,3" को डबल के रूप में पार्स नहीं करना चाहिए। हालांकि यह करता है। नेट 2,0 MSDN documentation
AllowThousands के अनुसार यह बताता है सांख्यिक स्ट्रिंग समूह विभाजक हो सकता है; उदाहरण के लिए, सैकड़ों को हजारों से अलग करना। मान्य समूह विभाजक वर्ण NumberFormatInfo की NumberGroupSeparator और CurrencyGroupSeparator गुण और प्रत्येक समूह में अंक NumberFormatInfo की NumberGroupSizes और CurrencyGroupSizes गुण से निर्धारित होता है की संख्या से निर्धारित होते हैं।
हजारों को नंबर स्टाइल में शामिल करने की अनुमति दें। कोई भी। नंबर संस्कृति समूह मेरी संस्कृति के लिए 3 है। क्या यह डबल में एक बग है। पर्स? असंभव लगता है लेकिन मैं यह नहीं देख सकता कि मैं क्या गलत कर रहा हूं ....
यह हो सकता है जब परीक्षण कारण है कि मैं एक वैध परिणाम मिला [मेरा उत्तर] (http://stackoverflow.com/questions/1014535/float-parse-doesnt-work-the -वे-आई-वांछित/1014559 # 1014559) इसी तरह के प्रश्न पर। – ChrisF
बस उत्सुक है, लेकिन परिणाम का मूल्य क्या है? – Aaron
मुझे लगता है कि आपको माइक्रोसॉफ्ट से पूछना होगा कि क्या यह एक बग है, लेकिन मुझे आपके जैसा ही व्यवहार मिलता है। हमेशा 'नंबर स्टाइल' कर सकते हैं। कोई भी^संख्या स्टाइल। AllowThousands' लेकिन यदि आप तीनों के वैध समूह की अपेक्षा कर रहे हैं तो इसका अधिक उपयोग नहीं है। – Jodrell