Приведение строки в double, подобное этому, не допускается C #, поэтому вы получаете исключение, вам нужно преобразовать строку ( MSDN doc , которая показывает допустимые пути преобразования). Это просто потому, что строка не обязательно будет содержать числовые данные, но различные числовые типы (запрет нулевых значений). A Convert
будет запускать метод, который проверяет строку, чтобы увидеть, можно ли ее преобразовать в числовое значение. Если это возможно, тогда оно вернет это значение. Если он не может, он выдаст исключение.
Чтобы преобразовать его, у вас есть несколько вариантов. Вы использовали метод Convert
в своем вопросе, есть Parse
, который во многом похож на Convert
, но вы также должны посмотреть на TryParse , который позволит вам сделать:
string variable = "5.00";
double varDouble;
if (Double.TryParse(variable, out varDouble)) {
//Code that runs if the conversion succeeded.
} else {
//Code that runs if the conversion failed.
}
Это позволяет избежать возможного исключения, если вы попытаетесь выполнить Convert
или Parse
нечисловую строку.