Как мне разобрать строку (с запятыми и знаком в конце, то есть "3 246 928-") в C #? - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть строка, которая выглядит как

3,246,928- 

И я хотел бы превратить это в C # double.

Есть ли предустановленный формат, который будет анализировать это какОтрицательный двойной для меня?

Я пытался

double parsedValue = Double.Parse("3,246,928-");

И получить исключение "Входная строка была в неправильном формате."

Есть ли способ сделатьэто без проверки вручную на наличие отрицательного символа в конце, удаления его, удаления запятых и т. д.?

1 Ответ

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

Вы можете использовать перечисление NumberStyles , чтобы указать, какие стили разрешены во входной строке:

var input = "3,246,928-";

var res = Double.Parse(input, NumberStyles.AllowThousands | NumberStyles.AllowTrailingSign);

Console.WriteLine(res);  // -3246928

Также может быть полезно использовать TryParse вместо:

var input = "3,246,928-";

if (Double.TryParse(input, NumberStyles.AllowThousands | NumberStyles.AllowTrailingSign, null, out var result))
    Console.WriteLine(result);  // -3246928
...