java - 我是否忘记了关于模数运算符的一些非常基本的内容?

标签 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

是什么导致它这样做?

谢谢!

最佳答案

WolframAlpha 和 Java 在这里的行为似乎有所不同。

在 Java 中,您可以从模运算符得到负结果。想想“如果我将 -5 除以 360 并取余数”,因为 -5/360 是 0,所以剩下的 -5 根本无法被除。所以 Java 中的结果是 -5。

如果您想要 WolframAlpha 生成的答案,则当模运算符的结果小于 0 时,您应该添加 360。

关于java - 我是否忘记了关于模数运算符的一些非常基本的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19084214/

相关文章:

java - Log4j 2滚动文件的时间戳错误

python - Python中模运算符的时间复杂度

c++ - 长整数的意外模数行为

Java:在一个类中使用引用另一个类中的变量的 Action 监听器

java - 如何从 netbeans 将 int 值添加到 sql 列

java - Android Studio - 按钮重复辅助

java - 使用 Firebase 云和 Java 向单个设备发送消息

c++ - 编译时(constexpr)浮点模?

opengl - 无法在glsl中使用 '%'

c++ - 我们如何计算 N choose K modules a prime number 而不会溢出?