Возможно, вы использовали неправильный символ разделения запятой или даже допустили другую ошибку при указании двойного значения. В любом случае в таких случаях вы должны использовать метод Double.TryParse (), который безопасен с точки зрения исключения и позволяет указать поставщика формата, в основном, культуру.
public static bool TryParse(
string s,
NumberStyles style,
IFormatProvider provider,
out double result
)
Метод TryParse похож на метод Parse (String, NumberStyles, IFormatProvider), за исключением того, что этот метод не создает исключение в случае сбоя преобразования. Если преобразование выполнено успешно, возвращаемое значение - истина, а параметр результата устанавливается равным результату преобразования. В случае сбоя преобразования возвращается значение false, а параметр результата устанавливается в ноль.
РЕДАКТИРОВАТЬ: ответ на комментарий
if(!double.TryParse(Console.ReadLine(), out unitPrice))
{
// parse error
}else
{
// all is ok, unitPrice contains valid double value
}
Также вы можете попробовать:
double.TryParse(Console.ReadLine(),
NumberStyle.Float,
CultureInfo.CurrentCulture,
out unitPrice))
person
sll
schedule
23.09.2011