2012-12-14 29 views
17

मैं पता नहीं क्यों यह काम नहीं कर रहा है:मुद्रा चिह्न के साथ दशमलव को स्ट्रिंग का विश्लेषण कैसे करें?

string s = "12,00 €"; 
var germanCulture = CultureInfo.CreateSpecificCulture("de-DE"); 
decimal d; 
if (decimal.TryParse(s, NumberStyles.AllowCurrencySymbol, germanCulture, out d)) 
{ 
    // i want to get to this point 
    Console.WriteLine("Decimal value: {0}", d); 
} 

उत्तर

27

उपयोग NumberStyles.Currency बजाय NumberStyles.AllowCurrencySymbol

if (decimal.TryParse(s, NumberStyles.Currency, germanCulture, out d)) 

और आप कोड के लिए उत्पादन होगा:

Decimal value: 12.00 
+0

धन्यवाद एक बहुत :) –

+0

@TimSchmelter, आपका स्वागत है :) – Habib

+6

एक छोटी सी में अधिक जानकारी की व्याख्या करने के यह क्यों इतना है: NumberStyles.AllowCurrencySymbol केवल मुद्रा प्रतीक पार्स की प्रक्रिया के हिस्से के रूप में ध्यान नहीं दिया जा करने के लिए अनुमति देता है। अतिरिक्त व्हाइटस्पेस और दशमलव विभाजक को उन्हें सक्षम करने के लिए अतिरिक्त झंडे की आवश्यकता होती है: AllowDecimalPoint और AllowTrailingWhite। मुद्रा इन झंडे (और कुछ अन्य) को जोड़ती है [लिंक] (http://msdn.microsoft.com/en-us/library/0xh24xh4.aspx) –

0

इस प्रयास करें;

string.Format(new CultureInfo("en-SG", false), "{0:c0}", 123423.083234); 

यह 123423.083234 से $ 1,23,423 प्रारूप को परिवर्तित करेगा।

+1

मुझे एक स्ट्रिंग को पार्स करने की आवश्यकता है जिसमें दशमलव के लिए मुद्रा चिह्न शामिल है। आप स्ट्रिंग में दिए गए दशमलव को परिवर्तित कर रहे हैं। तो यह एक अलग आवश्यकता है। हालांकि, यह पहले से ही उत्तर दिया गया है। –