Console.WriteLine(Convert.ToDouble(“23,23”) + 1);
इस मामले में, अल्पविराम को आपके स्थानीयकरण के समूह विभाजक प्रतीक के रूप में व्याख्या किया जा रहा है, और इसे अनदेखा किया जाता है। http://msdn.microsoft.com/en-us/library/fd84bdyt.aspx देखें।
Console.WriteLine(Convert.ToInt32(“23,23”) + 1);
इस मामले में, आप Int32.Parse
उपयोग कर रहे हैं, जो डिफ़ॉल्ट रूप से समूह विभाजक का समर्थन नहीं करता।
इस के पीछे तर्क पूर्णांक कनवर्टर, कोई स्थानीयकरण समर्थन डिफ़ॉल्ट से है क्योंकि स्थानीयकरण एक अतिरिक्त भूमि के ऊपर कहते हैं और वहाँ एक पार्सर कि किसी भी प्रतीकों के साथ बातचीत करने के लिए की जरूरत नहीं है के लिए इसे जोड़ने के लिए कोई कारण नहीं है है सब। , एक दशमलव विभाजक का समर्थन करने के
int.Parse("11,23", NumberStyles.AllowThousands, CultureInfo.InvariantCulture);
फ्लोट/डबल रूपांतरण दूसरे हाथ पर, है: हालांकि, आप पार्सर कुछ अतिरिक्त तर्क के साथ स्थानीयकरण समर्थन करने के लिए मजबूर कर सकते हैं। कुछ संस्कृतियों में, यह ","
है, अन्य में, यह " "
या "."
हो सकता है। चूंकि फ़ंक्शन को किसी भी तरह स्थानीयकरण का समर्थन करना चाहिए, इसके लिए यह डिफ़ॉल्ट रूप से कुछ स्थानीयकरण सुविधाओं का समर्थन करने के लिए कोई समझ नहीं लेगा। अन्यथा, कार्यान्वयन उन लोगों को भ्रमित करेगा जो उम्मीद करते हैं कि चूंकि स्थानीयकरण दशमलव विभाजक के लिए समर्थित है, यह अन्य स्थानीयकरण पहलुओं का भी समर्थन करेगा।
स्रोत
2010-01-19 14:58:43
कौन सा बस पता चलता है कि आप अधिभार और एक IFormatProvider कि एक NumberStyles लेता है का उपयोग करना चाहिए अगर आप आश्चर्य से बचना चाहते हैं चला जाता है। – bdukes