C # конвертировать любую строку формата в двойной - PullRequest
2 голосов
/ 06 июня 2011

Я попытался выполнить поиск в Google и stackoverflow безуспешно.

У меня проблема с "Введенная строка не в правильном формате."исключение - приложение, над которым я работаю.

Дело в том, что я преобразовываю некоторые двойные значения в строки с помощью doubleNumber.ToString ("N2");для того, чтобы хранить их в файле XML.Когда я переключаю машины тестирования, файл XML, хранящийся на одной из них, не может быть возвращен к двойным значениям.

Я перепробовал все возможные решения, но настройка числовой культуры не сработала, используяCultureInfo.InvariantCulture, замена символов также не работает.Иногда значения сохраняются как «3 001 435,57», а иногда (на другом ПК) как «3,001,435,57».

Существует ли какая-либо функция или способ для анализа двойного числа из строки, независимо от формата ввода?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 06 июня 2011

Вы должны указать культуру, потому что (например) «3,001» является неоднозначным - это 3,001 или 3001?

В зависимости от того, как выглядят ваши цифры, возможно, вы можете попытаться определить культуру, посчитав количество символов , и . и / или проверив их положение.

0 голосов
/ 06 июня 2011

Вот то, что вы ищете ...

http://msdn.microsoft.com/en-us/library/9s9ak971.aspx

Примут строковую переменную и поставщика формата. Вам необходимо создать поставщика форматов, который предоставит информацию о культуре, которую вы хотите преобразовать.

...