Ну, a
просто не является целочисленным значением - вместо него можно использовать Convert.ToDouble()
. Чтобы избежать ошибок синтаксического анализа в случае, если есть возможность, используйте double.TryParse()
вместо:
string a = "11.4";
double d;
if (double.TryParse(a, out d))
{
//d now contains the double value
}
Редактировать:
Принимая во внимание комментарии, конечно, всегда лучше указывать настройки культуры. Вот пример использования независящих от культуры настроек с double.TryParse()
, что приведет к 11.4
как результат:
if (double.TryParse(a, NumberStyles.Number, CultureInfo.InvariantCulture, out d))
{
//d now contains the double value
}