代码之家  ›  专栏  ›  技术社区  ›  Zack

如何解析C#中的字符串(末尾带有逗号和符号,即“3246928-”)?

  •  1
  • Zack  · 技术社区  · 7 年前

    我有一根绳子看起来像

    3,246,928- 
    

    我试过了

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

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

    有办法做到这一点吗 手动检查结尾处是否有负号,是否将其去掉,是否将逗号去掉,等等。。?

    1 回复  |  直到 7 年前
        1
  •  7
  •   Grant Winney    7 年前

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