Преобразование строки в число с плавающей запятой выдает ошибку «Неверный формат» - PullRequest
2 голосов
/ 06 февраля 2010

Я не могу заставить свое приложение преобразовать строку в число с плавающей точкой:

float number = float.Parse(match);

Где совпадение "0,791794".

Почему это не работает? Я получаю сообщение об ошибке: «Неправильная строка ввода

Ответы [ 3 ]

7 голосов
/ 06 февраля 2010

Попробуйте передать объект культуры (т. Е. InvariantCulture, если это данные, сохраненные системой, и формат никогда не будет другим) перегрузке, которая принимает один; ваша текущая культура может быть настроена на что-то, что ожидает точку в качестве разделителя вместо точки (или аналогичной).

Вы также можете попробовать

string x = (0.791794f).ToString()

просто чтобы посмотреть, что он печатает.

Проверка CultureInfo.CurrentCulture также может быть поучительной.

(Кроме того, проверка работоспособности - я предполагаю, что эти цитаты от вас, а не от самих строковых значений?)

0 голосов
/ 06 февраля 2010

В 2008 году, похоже, нормально работает

    static void Main(string[] args)
    {
        var match = "0.791794";
        float number = float.Parse(match);
        Console.Out.Write(number);
    }

Вы пытаетесь перезапустить против Надеюсь, это поможет

0 голосов
/ 06 февраля 2010

Вы уверены, что match относится к типу string? Возможно, вам нужно будет его настроить.

...