检查输入的数字是否具有整数值
首先,我是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);
这就是我现在所拥有的,我不知道如何比较这两个来测试哪一个是整数。我非常肯定你必须使用if语句,但是如何告诉C#来测试这两个数字中哪一个是整数,哪一个不是!
任何帮助,高度赞赏:)
更新:
我会做这样的:
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在小数点后面没有数字,所以它有一个整数值。
这是给我一个错误消息,行d = Convert.ToDouble(Console.ReadLine()),我不知道为什么真的 – 2015-02-07 12:44:40
什么是错误?它看起来像分配让你假设用户输入一个实际的数字,比如'2',而不是像'gfjhsgfd'这样的无效数字。 – Rhumborl 2015-02-07 12:52:39
当我输入2.5例如我得到一个类型'System.FormatException'的未处理的异常发生在mscorlib.dll – 2015-02-07 12:56:51
您可以使用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
}
如果您提供示例代码,OP会更好。 – 2015-02-07 12:28:34
我在写信,什么是OP? – 2015-02-07 12:29:57
OP =原创海报。 – 2015-02-07 12:32:12
应该是这样的:
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");
我认为你可以使用TryParse
与do 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));
你尝试过'一== B' - https://dotnetfiddle.net/ 6A3GwH? – Rhumborl 2015-02-07 12:30:57
这就是说,如果a等于b,但它们永远不会相等,因为一个数字是小数,另一个数字是整数。我需要类似于如果我输入一个= 2.5它会说2.5不是一个整数,但然后b =将其转换为整数和打印,2是一个整数 – 2015-02-07 12:35:25
'double a,b' - 其中是整数? '2.00000'与小提琴所显示的一样(并且大家都知道) – Rhumborl 2015-02-07 12:37:24