【问题标题】:Best/quickest way to convert to float [duplicate]转换为浮点数的最佳/最快方法[重复]
【发布时间】:2011-09-12 22:21:58
【问题描述】:

所以我试图以浮点数输入和输出。

Console.WriteLine("Enter float number: ");
float number = Console.ReadLine();
Console.WriteLine("{0}", number);

我看到 ReadLine 将在字符串中具有格式的问题,这将导致“错误 CS0029:无法将类型 'string' 隐式转换为 'float' (CS0029)”。现在,如何将字符串转换为浮点数?我可以使用 float.Parase:

string unformattedNumber;
float number;

Console.WriteLine("Enter float number: ");
unformattedNumber = Console.ReadLine();

number = float.Parse(unformattedNumber);

Console.WriteLine("{0}", number);

但是有没有更好的方法在 ReadLine 语句所在的同一行进行转换?

【问题讨论】:

  • number = float.Parse(Console.ReadLine()); -- 还有float.TryParse 供您使用。
  • 啊!我没有意识到我可以在那里使用它。
  • 当字符串不是有效数字时,TryParse 应该会快一点。

标签: c# floating-point


【解决方案1】:

【讨论】:

    【解决方案2】:

    浮点数 = float.Parse(Console.ReadLine());应该可以正常工作。通常,您可以在同一行上编写类似的函数调用。只是不要得意忘形——确保意思清楚。有时它实际上会让你的代码更清晰,但如果你做得太多,你最终会得到一堆难以阅读的代码。

    【讨论】:

      【解决方案3】:

      调用float.Parse 的问题在于,如果您的输入不是数值,它将引发异常并停止您的程序。由于用户此时可以输入任何内容,因此您需要满足这一点。

      您可以将float.Parse 包装在异常处理程序中,但最好使用float.TryParse

      float result;
      if (float.TryParse(Console.ReadLine(), out result))
      {
          // Do stuff
      }
      

      【讨论】:

        猜你喜欢
        • 2016-03-08
        • 1970-01-01
        • 1970-01-01
        • 2021-06-01
        • 2023-01-29
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 2010-09-12
        相关资源
        最近更新 更多