Parsing numbers with double.TryParse weird behavior

Why double.TryParse() will not deal with these settings

 double.TryParse("1.035,00", NumberStyles.AllowCurrencySymbol | NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite | NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign, GlobalSettings.Instance.DefaultCulture, out price); 

where DefaultCulture is a sl-SI (Slovenian) that has a point . as a character for grouping numbers and as a decimal point. After parsing price , 0 remains.

?

+7
source share
2 answers

You are missing NumberStyles.AllowThousands :

 double.TryParse("1.035,00", NumberStyles.AllowCurrencySymbol | NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite | NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign | NumberStyles.AllowThousands, GlobalSettings.Instance.DefaultCulture, out price); 
+6
source

It worked for me

 double.TryParse("1.035,00", NumberStyles.Any, GlobalSettings.Instance.DefaultCulture, out price); 
+2
source

All Articles