这完全有效,除了当用户输入带小数的数字(例如2.3
)时,它返回相同的语句(“数字必须是整数”)。
我想说的是,它不是int
还是double
。
代码:
while (true)
{
Console.Write("Enter First Integer:");
string line = Console.ReadLine();
if (!int.TryParse(line, out firstNo)) //INT OR A DOUBLE
Console.WriteLine("Number must be an integer. {0} is not an integer.", line);
break;
}
答案 0 :(得分:3)
将其解析为double
,它可以使用整数和小数:
double doubleVar;
while (true)
{
Console.Write("Enter First number:");
string line = Console.ReadLine();
if (!double.TryParse(line, out doubleVar)) //PARSE INT OR DOUBLE
Console.WriteLine("you must enter a number. {0} is not a number.", line);
else
break;
}
请注意.
或,
分隔符可能因您当前的文化而异。
所以,如果你需要分开int ans double,请像这样做:
if (int.TryParse(line, out intVar)) //PARSE INT
{
//it's int
}
else if (double.TryParse(line, out doubleVar)) //PARSE DOUBLE
{
//it's double
}
else
{
//it's not
}
答案 1 :(得分:2)
由于所有整数都是双精度数,因此您只需将其解析为双精度。
答案 2 :(得分:0)
尝试这个简单的技巧,
bool result = line.Constains(".");
答案 3 :(得分:0)
整数和分数是两个不同的实体。你不应该混淆。 如果您正在寻找支持小数和整数输入的方法,请尝试以下
if (!double.TryParse(line, out firstNo))