检查输入的数字是否具有整数值

时间:2015-02-07 12:26:20

标签: c#

首先,我是C#的初学者,我刚开始玩它,因为这就是我的大学课程所需要的。

我的问题是一个任务问题:

h)测试输入的数字是否具有整数值。提示:数字必须是Double类型。例如,如果数字是2.5,则没有整数值但是2。您将需要使用Convert.ToInt32(TheNumber)将Double转换为Int然后比较两者。

double a, b, result;
            Console.WriteLine("Input a number");
            a = Convert.ToDouble(Console.ReadLine());
            b = Convert.ToInt32(a);

这就是我目前所拥有的,我不知道如何比较这些2以测试哪一个是整数。我很确定你必须使用if语句但是如何告诉C#测试这两个数字中的哪一个是整数而哪一个不是!

非常感谢任何帮助:)

4 个答案:

答案 0 :(得分:5)

<强>更新
我会这样做:

double d;
int i;
Console.WriteLine("Input a number");
d = Convert.ToDouble(Console.ReadLine());
i = Convert.ToInt32(d);
if(i == d) Console.WriteLine("It is an integral value");

这意味着:如果将double转换为整数,它将丢失小数点后的所有数字。如果此整数与double具有相同的值,则double在小数点后没有数字,因此它具有整数值。

答案 1 :(得分:4)

您可以使用返回布尔值的TryParse方法

        double mydouble;
        int myInt;
        string value = Console.ReadLine();
        if (double.TryParse(value, out mydouble))
        {
            //This is double value, you can perform your operations here
        }
        if (int.TryParse(value, out myInt))
        {
            //This is Int value, you can perform your operation here
        }

答案 2 :(得分:0)

应该是这样的:

double d;
int i;      
Console.WriteLine("Input a number");
d = Convert.ToDouble(Console.ReadLine());
i = Convert.ToInt32(d);
if(i == d) Console.WriteLine("It is an integral value");

答案 3 :(得分:0)

我认为你可以使用TryParse和while循环

int  number;
string value;
do
{
  Console.Write("Enter a number : ");
  value =Console.ReadLine();

  if (!Int32.TryParse(value, out number))
       {
         Console.WriteLine("Wrong Input!!!!");
       }

}while (!Int32.TryParse(value, out number));