Search code examples
c#parsingdouble

Why double.TryParse("0.0000", out doubleValue) returns false ?


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 ?


Solution

  • 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: