【问题标题】:Format Exception - input string was not in a correct format [duplicate]格式异常-输入字符串的格式不正确[重复]
【发布时间】:2018-09-23 23:19:51
【问题描述】:

我发现了一个问题——当我运行这个程序时,Visual Studio 抛出一个异常——格式异常:输入字符串的格式不正确。

        string name = Console.ReadLine();
        int age = int.Parse(Console.ReadLine());
        int id = int.Parse(Console.ReadLine());
        double salary = double.Parse(Console.ReadLine());
        Console.WriteLine($"Name: {name}");
        Console.WriteLine($"Age: {age}");
        Console.WriteLine($"Employee ID: {id:D8}");
        Console.WriteLine($"Salary: {salary:F2}");

很遗憾,我在这里找不到错误。你能帮我吗?或者这是 Visual Studio 中的错误?

【问题讨论】:

  • 您正在尝试将 Colsole.ReadLine 中的内容转换为 int,但在尝试转换之前您知道它是否是 int 吗?可能是别的东西
  • 你能分享你的意见吗?
  • 您遇到了异常,但您没有努力找出它的含义。你甚至不知道哪一行引发了异常。您将字符串传递给int.Parse()double.Parse(),但您似乎不知道您传递的是什么字符串。您找不到错误,因为您没有尝试寻找错误。异常消息的信息量不是很大,但谷歌会告诉你它的确切含义。你不打扰吗?
  • 请阅读minimal reproducible example 发布代码指南 - 在这种情况下,您应该提供准确的输入作为常量字符串,而不是ReadLine。还可以找到比disney.com 更合适的搜索引擎。 Google,Bing 会立即为您解释异常,在 MSDN 上搜索或在 Visual Studio 中单击 F1 将有助于解释 Console.WriteLineInt32.Parse。到目前为止,除了这个异常的数千个现有变体之外,这篇文章没有为 SO 带来任何新信息。

标签: c# exception formatting


【解决方案1】:

无论您输入什么都有问题。因此,您可能正在尝试将 double 输入到会引发此​​错误的 int 中。尝试使用int.TryParse()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多