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

3,246,928-


我想把它变成C#的两倍。

是否有预设格式对我来说将其解析为负双精度?

我试过了

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


并获得异常“输入字符串的格式不正确”。

有没有一种方法,而无需手动检查结尾处的负号,将其剥离,剥离逗号等。

最佳答案

您可以使用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

09-07 05:08