所以我试图在float number中输入和输出。
Console.WriteLine("Enter float number: ");
float number = Console.ReadLine();
Console.WriteLine("{0}", number);
我看到ReadLine将在字符串中格式化的问题,这将导致“错误CS0029:无法将类型'字符串'隐式转换为'浮动'(CS0029)”。现在,我如何将字符串转换为浮点数?我可以使用float.Parase:
string unformattedNumber;
float number;
Console.WriteLine("Enter float number: ");
unformattedNumber = Console.ReadLine();
number = float.Parse(unformattedNumber);
Console.WriteLine("{0}", number);
但有没有比ReadLine语句在同一行转换更好的方法?
答案 0 :(得分:5)
TryParse
是最好的方式。
请参阅:http://msdn.microsoft.com/en-us/library/system.single.tryparse.aspx
答案 1 :(得分:2)
float number = float.Parse(Console.ReadLine());应该工作得很好。通常,您可以在同一行上组合函数调用。只是不要忘记 - 确保意思清楚。有时它实际上会让你的代码更清晰,但是如果你做得太多,你最终会得到一个难以理解的代码丛。
答案 2 :(得分:1)
调用float.Parse
的问题是,如果您的输入不是数值,它将引发异常并暂停您的程序。由于用户此时可以输入任何内容,因此您需要满足这一要求。
您可以将float.Parse
包装在异常处理程序中,但最好使用float.TryParse
:
float result;
if (float.TryParse(Console.ReadLine(), out result))
{
// Do stuff
}