下面的代码有问题吗?
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
是什么导致它这样做?
谢谢!
答案 0 :(得分:3)
看起来WolframAlpha和Java的行为有所不同。
在Java中,您可以从模运算符获得否定结果。想想“如果我将-5除以360并取其余部分”,那么因为-5 / 360为0,所以你只剩下-5而无法分割。所以Java中的结果是-5。
如果你想得到WolframAlpha产生的答案,如果模运算符的结果小于0,你应该加360.