double是一个整数,难以解析

时间:2012-09-28 02:42:53

标签: c# int double

这完全有效,除了当用户输入带小数的数字(例如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;
}

4 个答案:

答案 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))