Обновление:
Ваша строка "52.0"
.
Это должно быть '.'
, которое вызывает FormatException
.
Вы, вероятно, находитесь на машине, где '.'
равно , а не установлено в качестве десятичной точки (например, я живув Германии и используйте немецкие региональные настройки. Наша десятичная точка ','
)
Чтобы обойти эту проблему, вам нужно проанализировать строку, используя CultureInfo.InvariantCulture
.
var value = double.Parse(myString, CultureInfo.InvariantCulture);
InvariantCulture
следует использовать для частей вашего приложения, которые вращаются вокруг хранения данных.Убедитесь, что вы используете его также и при преобразовании значений типа double в строки- '), скажем, например, "80%"
Таким образом, вы получаете FormatException
в этой строке
double percentToCheck = Convert.ToDouble(String.Format("{0:0.00}", SomeEntity.KeyIDs.SomePercentTrigger));
, потому что {0:0.00}
правила форматирования действительны только для числовых значений,
Также здесь вы получите то же исключение:
double percentToCheck = Convert.ToDouble(SomeEntity.KeyIDs.SomePercentTrigger);
, поскольку "80%" не может быть преобразовано в двойное число.
Вы должны либо
- поместите некоторые записи прямо перед ошибочным оператором
- или отладьте этот код
и посмотрите, что фактическое содержание SomeEntity.KeyIDs.SomePercentTrigger
есть.