如何在C#中解析一个字符串(用逗号和末尾的符号,即"3,246,928-")?

Zac*_*ack 1 c# string double parsing

我有一个看起来像的字符串

3,246,928- 
Run Code Online (Sandbox Code Playgroud)

我想把它变成C#double.

是否有预设格式将此解析为负面双重?

我试过了

double parsedValue = Double.Parse("3,246,928-");
Run Code Online (Sandbox Code Playgroud)

并得到一个例外"输入字符串的格式不正确."

有没有办法做到这一点,而无需在最后手动检查负面符号,剥离它,剥离逗号等.?

Gra*_*ICA 7

您可以使用NumberStyles枚举来指示输入字符串中允许的样式:

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

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

Console.WriteLine(res);  // -3246928
Run Code Online (Sandbox Code Playgroud)

使用它也可能是一个好主意TryParse:

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

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

  • 这里的文档详细说明:https://docs.microsoft.com/en-us/dotnet/api/system.double.parse?view = networkwork4.7.2 (3认同)