java中负数的Mod运算符不起作用?

Lok*_*gal -2 java modulo

在Java中我尝试过

-1 % 20  
Run Code Online (Sandbox Code Playgroud)

期望它返回 -1...但实际值是 19。
有人可以帮助我吗?

Rub*_*xus 6

如果你想要一个积极的结果,你可以包装 mod。

public static int PositiveMod(int value, int mod)
{
    return ((value % mod + mod) % mod);
}

int result = PositiveMod(-1, 20); //Returns 19
Run Code Online (Sandbox Code Playgroud)