我如何定义比较必须是一个int?

时间:2014-03-02 10:52:15

标签: c# visual-studio int

这里是已经编码的东西的简短代码:

if (str.Length % 3 != 0)

现在我的问题是,我如何定义,如果str.Length % 3 = int必须做某事?

这是一个例子:

123456789123 / 3 = int...

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

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

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

原因:int / int = int ...任何十进制值都将被截断(不是舍入)。如果需要,C#不会自动将号码转换为floatdouble。您需要明确地进行该性质的类型转换。

我认为你可能也混淆了模%并划分/。如果你想知道是否没有余数,这意味着从计算中得到的数字是一个整数做if (str.Length % 3 != 0)你放入代码......我假设你正在寻找这样的东西< / p>

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
}

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

答案 1 :(得分:1)

语句str.Length % 3总是产生整数。你需要的只是对这个陈述的简单否定,它会告诉你,还有一个余数...

!=的否定当然是==

答案 2 :(得分:-1)

试试这个

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