我忘了关于模数运算符的一些非常基础的东西吗?

时间:2013-09-29 22:53:07

标签: java modulo

下面的代码有问题吗?

public class testing111 {
   public static void main(String[] args) {
      int t = 0;
      System.out.println((t-5)%360);      
  }

}

我上面的代码输出-5。我认为答案应该是355,我甚至检查了wolframalpha:http://www.wolframalpha.com/input/?i=%280-5%29%25360

是什么导致它这样做?

谢谢!

1 个答案:

答案 0 :(得分:3)

看起来WolframAlpha和Java的行为有所不同。

在Java中,您可以从模运算符获得否定结果。想想“如果我将-5除以360并取其余部分”,那么因为-5 / 360为0,所以你只剩下-5而无法分割。所以Java中的结果是-5。

如果你想得到WolframAlpha产生的答案,如果模运算符的结果小于0,你应该加360.