C# FormatException double.parse(). Почему не выполняется синтаксический анализ версии 0,89?[дубликат]

StackOverflow https://stackoverflow.com//questions/21015194

Вопрос

class Program
{
    static void Main(string[] args)
    {
        string str = "0.898";
        double dbl = Double.Parse(str);

        dbl++;

        Console.WriteLine(dbl);
        Console.ReadLine();
    }
}

Все остальные форматы, которые мне нужны для работы, например «100», работают.Но как только я добавляю «точку», у меня появляется FormatException ошибка.

Это было полезно?

Решение

Может быть, попробуйте:

double dbl = double.Parse(str , CultureInfo.InvariantCulture);
.

Проверьте здесь, на IDeone

Ваша проблема в том, что ваша культура не позволяет точками.Инвариантная культура не является единственным решением, вы также можете указать свою культуру и использовать ее сепараторы.Если ваша нынешняя культура принимает только запятые в качестве сепараторов, это также может быть решение для замены точки запятой.Не указывая культуру явно повлияет на проблемы с разбором чисел в разных машинах, работающих на разных культурах.

Все, что специфично культура всегда сложно и должно быть определено как точное, как это возможно.Если вы знаете допроси, какой двойной формат вы будете использовать, определить его.Если вы знаете, какой формат даты вы будете использовать, укажите его и т. Д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top