How to parse string to decimal with currency symbol?

.net, c#, globalization, string, type-conversion

Solution

Use `NumberStyles.Currency` instead of `NumberStyles.AllowCurrencySymbol`

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

and the output for you code would be:

Decimal value: 12.00

Problem

I have no idea why this is not working: ``` 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); } ```

Original source