Как разобрать результат строки. Формат - PullRequest
0 голосов
/ 15 июля 2010

Допустим, у меня есть число (например, double) и преобразование его с использованием некоторой строки формата в строковую переменную:

var str = string.Format("{0:0%}", 0.256);

(содержимое переменной str в данном случае "26%"). Есть ли способ разобрать эту строку обратно в число?

Я знаю, что в зависимости от строки формата обратное преобразование без потерь может оказаться невозможным - как и в этом случае 0.26 - лучшее, что я могу получить, потому что некоторая информация (третье десятичное место) просто теряется при форматировании , Но даже получение 0.26 из комбинации строки формата "{0:0%}" и строки 26% было бы замечательно, если бы это было возможно каким-либо автоматическим способом.

Ответы [ 2 ]

3 голосов
/ 15 июля 2010

Я считаю, что RegEx - лучший стандартный инструмент для ваших целей. Существует множество реализаций scanf для .net, но я думаю, что лучше написать собственное регулярное выражение.

1 голос
/ 15 июля 2010

Ваше значение относится к какому-либо типу (int, double, decimal).Все эти функции имеют функцию Parse() или TryParse(), например Decimal.Parse () .И чтобы сказать, в каком формате это число (например, различное использование запятой и точки на английском и немецком языках), вы можете указать IFormatProvider (что проще всего сделать как CultureInfo).

Обновление

После небольшого поиска я нашел эти вопросы в SO:

, а также некоторые поиски в Интернете не выявили ничего полезного.Таким образом, кажется, что здесь действительно отсутствует функция в .Net Framework, и все, что вы можете сделать, это написать что-то для себя (или принять одно из предложенных решений в приведенных выше вопросах).

Извините, за мойпервый неправильный ответ, но кажется, что на самом деле не существует чего-то вне коробки (.net framework).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...