C# 如何定义比较必须是int?

C# 如何定义比较必须是int?,c#,visual-studio,int,C#,Visual Studio,Int,这里有一个简短的代码,用于已经编码的东西: if (str.Length % 3 != 0) 现在我的问题是,我如何定义,如果str.Length%3=int它必须做些什么 这里有一个例子: 123456789123/3=int. 我知道,我使用的语法是不正确的,但这是因为我不知道怎么做。 如果你告诉我,if(str.Length%3!=0)的“反面”是什么,你也会帮助我的 谢谢你的帮助。试试这个 if ((str.Length % 3).GetType() == typeof(int)) {

这里有一个简短的代码,用于已经编码的东西:

if (str.Length % 3 != 0)
现在我的问题是,我如何定义,如果
str.Length%3=int
它必须做些什么

这里有一个例子:

123456789123/3=int.

我知道,我使用的语法是不正确的,但这是因为我不知道怎么做。 如果你告诉我,
if(str.Length%3!=0)
的“反面”是什么,你也会帮助我的

谢谢你的帮助。

试试这个

if ((str.Length % 3).GetType() == typeof(int))
{
        //is integer
}

语句
str.Length%3
始终生成一个整数。你需要的可能只是对这句话的一个简单的否定,它会告诉你,还有一个余数


否定
=
当然是
==

它将是
int
,无论您提供的代码是什么

原因:
int/int=int
。。。任何十进制值都将被截断(不四舍五入)。如果需要,C#不会自动将数字转换为
float
double
。您需要显式地进行这种性质的类型转换

我想你可能也混淆了模
%
和除法
/
。如果您想知道是否没有余数,这意味着计算得出的数字是整数,请执行
If(str.Length%3!=0)
您输入的代码。。。。我猜你在找这样的东西

if (str.Length % 3 != 0)
{
    int num = str.Length / 3;
    //Now do something with your int version of num
}
else
{
    double num = str.Length / (double)3;
    //Now do something with your double version of num
}

通过将
int
的3转换为
double
,得到的数字将是
double
,如果不这样做,将得到一个截断的整数值,然后隐式转换为
double
,并存储在
num

中,因为
。Length
返回
int
,我看不出你的代码有任何错误。而%则具有更高的优先权!=操作人员你遇到的实际问题是什么?您是否尝试使用您的
str
而不是
str.Lenght
?因为我不认为你的
str.Length
123456789123
我假设它是一个字符串
:)
与str.Length%3相反=0是str.Length%3==0@anonymous当然,情况恰恰相反!(str.Length%3!=0)@SonerGönül,也许OP想要确定结果是浮点型还是int型?换言之,如果有剩余或没有。。。对当前语句进行简单的否定可能就行了。@SamHolder这也是可能的。但我是沿着非零和零的思路思考的。所以非零的对立面是零。你能告诉我一个情况吗,当
str.Length%3
的结果不是
integer
类型吗?你的答案毫无意义
int%int
始终返回
int