C#中“%”运算符的含义和使用

Dav*_*vid -1 c# operators unity-game-engine

我知道这是一个非常基本的问题(我对 C# 比较陌生),但不知何故我在互联网上找不到任何有关它的信息。

我只是想了解“%”运算符的作用,我以前见过应用程序并且有一些想法,但不能 100% 确定它到底做什么。

例如,下面是每 10 帧执行一次的方法(在 Unity 中):

void Update() {
     frames++;
     if (frames % 10 == 0) {
         // method
     }
}
Run Code Online (Sandbox Code Playgroud)

下面是显示的游戏时间计算:

// time = incremented by 1 every second

int seconds = (time % 60);
int minutes = (time / 60) % 60;
int hours = (time / 3600) % 24;
// int days = (time / 86400) % 365;
Run Code Online (Sandbox Code Playgroud)

在这些示例中 % 运算符到底做了什么以及我怎样才能最好地理解它。

小智 5

% 运算符返回除法的余数。

在第一个示例中,代码将每 10 帧执行一次,因为只有每第 10 帧,帧数除以 10 的余数才会为 0。

在第二个示例中,时间是总秒数,因此如果执行time % 60,您将获得最后一分钟的秒数,因为分钟有 60 秒,所以时间的余数 / 60是最后一分钟的秒数。

基本上与向下取整的情况num1 % num2相同。num1 - (floor(num1 / num2) * num2)