Как разобрать строку для удвоения C# - PullRequest
0 голосов
/ 20 июня 2020

My c.ShareWhite - это строка, но я не могу преобразовать ее в double с помощью Double.Parse

double a = Double.Parse(c.ShareWhite.ToString());

error:

nhandled exception. System.FormatException: Input string was not in a correct format.
   at System.Number.ThrowOverflowOrFormatException(ParsingStatus status, TypeCode type)
   at System.Double.Parse(String s)

может кто-нибудь сказать ne, как анализировать строка для удвоения?

1 Ответ

2 голосов
/ 20 июня 2020

Прежде всего, я рекомендую использовать метод TryParse (), который реализован для классов-оболочек типов, таких как Int32, Double, ... и т.д. c.

Документы здесь: https://docs.microsoft.com/en-us/dotnet/api/system.double.tryparse?view=netcore-3.1

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

double d;
bool res = Double.TryParse(c.ShareWhite, out d);

У вас есть чтобы убедиться, что ваша строка является допустимой double, а не чем-либо еще, или пустой строкой, потому что оба случая могут дать вам исключение формата, если вы используете простой метод Parse.

Вы должны выбрать точку останова в своей среде IDE перед шагом где вы пытаетесь выполнить синтаксический анализ (https://docs.microsoft.com/en-us/visualstudio/debugger/using-breakpoints?view=vs-2019) и проверить, какое строковое значение передается методу (Try) Parse.

Это может быть несколько шагов до или полностью из в начале вы работаете с неверным значением.

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