是否有一个简单的表达式可以放入if语句来检查值是否为int?
像这样,检查x
是否为int:
x = 1
if (Diceroll() = 1)
{
x = x * 0.75
}
if (Diceroll() = 2)
{
x = x * 1.25
}
if (Diceroll() = 3)
{
x = x * 1
}
if (x != int)
{
consol.writeline("X is not an int")
}
if (x = int)
{
consol.writeline("X is an int")
}
答案 0 :(得分:4)
你可以这样写:
double x;
// your code here
if (x != Math.Floor(x))
Console.WriteLine("X is not an int")
else
Console.WriteLine("X is an int")
另请参阅此答案:https://stackoverflow.com/a/1650120/3901618关于比较浮点值(根据CodeCaster的评论)。
答案 1 :(得分:0)
您可能需要稍微指定一下您的问题。首先,x - 对象的类型是什么?
其次,您是否要严格测试其数据类型是否为int? 这很容易:
object p = ....;
bool is_int = p is int;
或者您想检查其他内容?例如......
您可能想要或不想考虑这些案例?如果是这样,他们需要额外的工作。
答案 2 :(得分:0)
对于你的问题有两种不同的解释,如果你问的是“x”的值是否可以是整数,你可以使用。
int temp = 0;
string x = "numberofsomesort";
if (!int.TryParse(x,out temp))
{
Console.Writeline("X is not an int");
}
或者,如果您有一个对象,并且想要检查其类型,则使用。
object x;
if (!(x is int))
{
Console.Writeline("X is not an int");
}
编辑:查看新代码,第一个建议是正确的,因为您正在检查“x”的值是否可以转换为整数。
答案 3 :(得分:0)
您可以通过两种方式实现:
int aIntValue;
if(int.TryParse(x, out aIntValue))
如果int.TryParse返回true,它会将值'x'转换为变量“aIntValue”。如果返回false,则'x'不是数字。
或者你可以这样做:
if(!(x is int))