'%'运算符是什么意思?

Pol*_*ris 6 c# operators

我有下一个代码

int a,b,c;
b=1;
c=36;
a=b%c;
Run Code Online (Sandbox Code Playgroud)

"%"运算符是什么意思?

Dir*_*mar 26

它是模数(或模数)运算符:

模数运算符(%)在将第一个操作数除以第二个操作数后计算余数.

例如:

class Program
{
    static void Main()
    {
        Console.WriteLine(5 % 2);       // int
        Console.WriteLine(-5 % 2);      // int
        Console.WriteLine(5.0 % 2.2);   // double
        Console.WriteLine(5.0m % 2.2m); // decimal
        Console.WriteLine(-5.2 % 2.0);  // double
    }
}
Run Code Online (Sandbox Code Playgroud)

样本输出:

1
-1
0.6
0.6
-1.2

注意,%运算符的结果等于x – (x / y) * y,如果y为零,DivideByZeroException则抛出a.

如果xy是非整数值,x % y则计算为x – n * y,其中n,小于或等于的最大可能整数x / y(第7.8.3节" 剩余运算符"中的C#4.0规范中的更多详细信息).

有关更多详细信息和示例,您可能需要查看相应的Wikipedia文章:

模数运算(在维基百科上)


Jus*_*ner 6

那就是Modulo运营商.它将为您提供除法运算的剩余部分.


pol*_*nts 5

% 是许多C语言中的余数运算符.

3 % 2 == 1
789 % 10 = 9
Run Code Online (Sandbox Code Playgroud)

负数有点棘手.在例如Java和C#中,结果与被除数具有相同的符号:

-1 % 2 == -1
Run Code Online (Sandbox Code Playgroud)

在例如C++中,这是实现定义的.

也可以看看

参考