首先,我是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#测试这两个数字中的哪一个是整数而哪一个不是!
非常感谢任何帮助:)
答案 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));