0

这完美地工作,除了当用户输入带小数的数字(例如2.3)时,它返回相同的语句(“数字必须是整数”)。

我想说它是否不是intOR a 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;
}
4

4 回答 4

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 doubles,请执行以下操作:

    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
    }
于 2012-09-28T02:44:45.277 回答
2

由于所有整数都是双精度数,因此您只能将其解析为双精度数。

于 2012-09-28T02:44:54.757 回答
0

整数和分数是两个不同的实体。你不应该混淆。如果您正在寻找一种支持小数和整数输入的方法,请尝试以下方法

if (!double.TryParse(line, out firstNo))
于 2012-09-28T02:53:29.293 回答
0

试试这个简单的技巧,

bool result = line.Constains(".");
于 2012-09-28T02:46:34.897 回答