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.
In order to convert string to double without an exception:
make it culture-insensitive by providing second parameter value CultureInfo.InvariantCulture, for example:
I recommend you use
TryParse
instead, so you don't need to handle parsing exceptions.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.You may be somehow using a european local. In some countries the . and , in numbers is reversed.
Check your regional settings. Your decimal symbol needs to be ".".