Input string was not in a correct format #2

65,774

Solution 1

As far as I know the Convert methods use the current locale to do such conversions. In this case I'd guess your current locale would expect a comma as decimal point. Try to set the current locale for your application or the conversion to some language/country where dots are used (e.g. en_US). The method should provide a second optional parameter to provide a IFormatProvider as an alternative solution.

Solution 2

In order to convert string to double without an exception:

An unhandled exception of type System.FormatException occurred in mscorlib.dll

Additional information: Input string was not in a correct format.

make it culture-insensitive by providing second parameter value CultureInfo.InvariantCulture, for example:

double.Parse("1234.5678", CultureInfo.InvariantCulture) 

Solution 3

first solution (as mentioned in other posts):

double temp = double.Parse("1234.5678", CultureInfo.InvariantCulture);

second solution - make it default to current thread:

Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
double temp = double.Parse("1234.5678");

third solution - make it default to block of code:

var prevCurrentCulture = Thread.CurrentThread.CurrentCulture;
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
...
double temp = double.Parse("1234.5678");
...
Thread.CurrentThread.CurrentCulture = prevCurrentCulture;

Solution 4

You may be somehow using a european local. In some countries the . and , in numbers is reversed.

Solution 5

Hi as Mario says you must parse it taking into account the regional settings.

double temp = double.Parse("1234.5678", System.Globalization.CultureInfo.CurrentCulture);

Regards.

Share:
65,774
Keith Loughnane
Author by

Keith Loughnane

Updated on January 26, 2020

Comments

  • Keith Loughnane
    Keith Loughnane over 4 years
    double temp;
    temp = (double)Convert.ToDouble("1234.5678");
    

    Hey Lads and Ladies, I can't for the life of me figure out why the above line isn't working. The above line gives me a runtime error that says;

    An unhandled exception of type System.FormatException occurred in mscorlib.dll

    Additional information: Input string was not in a correct format.