I am trying to parse string "0.0000" with double.TryParse()
but I have no idea why would it return false in this particular example. When I pass integer-like strings e.g. "5" it parses correctly to value of 5 .
Any ideas why it is happening ?
it takes the localization settings at runtime into account... perhaps you are running this on a system where .
is not the decimal point but ,
instead...
In your specific case I assume you want a fixed culture regardless of the system you are running on with .
as the decimal point:
double.TryParse("0.0000", NumberStyles.Number, CultureInfo.CreateSpecificCulture ("en-US"), out temp)
OR
double.TryParse("0.0000", NumberStyles.Number,CultureInfo.InvariantCulture, out temp)
Some MSDN reference links: