当我计算int i = -1 % 2 我得到-1Java.在Python中,我得到1了结果-1 % 2.使用模数函数在Java中获得相同的行为我需要做什么?
and*_*wmu 162
这里的问题是在Python中%运算符返回模数,在Java中它返回余数.这些函数为正参数提供相同的值,但模数总是返回负输入的正结果,而余数可能给出负结果.在这个问题中有更多关于它的信息.
你可以通过这样做找到正值:
int i = (((-1 % 2) + 2) % 2)
Run Code Online (Sandbox Code Playgroud)
或这个:
int i = -1 % 2;
if (i<0) i += 2;
Run Code Online (Sandbox Code Playgroud)
(显然-1或2可以是你想要的分子或分母)
cod*_*leb 98
从Java 8开始,您可以使用Math.floorMod()方法:
Math.floorMod(-1, 2); //== 1
Run Code Online (Sandbox Code Playgroud)
注意:如果模数值(此处2)为负数,则所有输出值也将为负数.:)
来源:https://stackoverflow.com/a/25830153/2311557