2010-07-02 7 views
5

एक विंडोज पीसी जापान में पर के रूप में NaN पार्स करने के लिए विफल रहता है, सी # की इस पंक्ति एक प्रारूप अपवाद फेंकता यह नहीं पता कि इस समस्या का निवारण कहां शुरू करें। कोई विचार?सी # एक डबल

अग्रिम धन्यवाद, जिम

उत्तर

7

मुझे लगता है कि समस्या क्या है। Invariant प्रारूप प्रदाता का उपयोग करने का प्रयास करें।

double d = double.Parse("NaN", CultureInfo.InvariantCulture); 
+0

मैं मदद कर सकता हूं लेकिन छोटे बच्चे की तरह चकित करता हूं जब मैं 'डबल डी' का उपयोग करता हूं। – ChaosPandion

+0

मैं उपयोगकर्ता को यह टेस्ट भेजूंगा। यदि यह सफल होता है, तो इसका क्या अर्थ है? विंडोज़ में उनके पास कुछ प्रकार का जापानी स्थानीयकरण चालू है? –

+0

@ जिम - यह वही है जिसका अर्थ है। – ChaosPandion

-3

सबसे पहले, आप "NaN" के लिए डबल मूल्य निर्धारण करना चाहिए। वैसे भी, गैर संख्यात्मक प्रारूप स्ट्रिंग को पार्स करने से System.FormatException का कारण बन जाएगा, आपको इसे पकड़ना चाहिए और मैन्युअल रूप से डबल मान सेट करना चाहिए।

double x; 
string foo = "NaN"; 
try 
{ 
    x = double.Parse(foo); 
} 
catch 
{ 
    x = 0.0; 
} 
+1

असल में 'TryParse' पसंदीदा तरीका है क्योंकि यह नियंत्रण प्रवाह के लिए अपवाद पर निर्भर नहीं है। – ChaosPandion

+1

लेकिन परिवर्तनीय को Double.NaN में प्रारंभ करने की आवश्यकता है। यह मान उस फ़ाइल में मौजूद है जो डबल को प्रारंभ कर रहा है। –