0

これは完全に機能しますが、ユーザーが小数(たとえば2.3)で数値を入力すると、同じステートメントが返されます(「数値は整数でなければなりません」)。

私はそれがintORではないかどうかを言おうとしてい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とdoubleを分離する必要がある場合は、次のようにsmthを実行します。

    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

すべての整数はdoubleであるため、doubleとしてのみ解析できます。

于 2012-09-28T02:44:54.757 に答える
0

これを単にトリックしてみてください、

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

整数と小数は2つの異なるエンティティです。混同しないでください。小数および整数の入力をサポートする方法を探している場合は、以下を試してください

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