В вашем примере вы пытаетесь передать строку двойному (не целочисленному типу).
Для этого требуется явное преобразование.
И я должен указать что вы могли бы использовать Convert.ToDouble
вместо Convert.ToInt64
, поскольку вы можете потерять дробные части двойного значения при преобразовании в int.
, если ваша переменная имеет значение «5.25», varDouble будет иметь было 5,00 (потеря 0,25 из-за конверсии в Int64)
Чтобы ответить на вопрос о кастинге и конвертировании.
Ваш актерский состав (явное литье) не соответствует требованиям для явное приведение. значение, которое вы пытаетесь выполнить с помощью оператора трансляции, недопустимо (т. е. не является интегралом).
Посетите эту страницу MSDN для правил литья / конверсий