java - 在 Scala 中,为什么余数 (%) 运算符会返回负数?

标签 java scala modulo

例如,(-3) % 2 将返回 -1 而不是 1

在 Scala 中获得正余数的首选方法是什么?比如(((-3) % 2) + 2) % 2,或者abs(-3 % 2)?

最佳答案

In scala, why could remainder (%) operator return a negative number?

模运算结果的符号有不同的约定; Wikipedia has a good article on it . Scala 与大多数编程语言一样,但绝不是所有编程语言,其结果采用红利符号(在您的例子中为 -3)。

What is the preferred way to get the positive remainder in Scala?

我怀疑是否存在普遍认可的首选方式;如果是我,要么使用 Math.floorMod ,它给出的结果带有除数符号(在您的示例中为 2)而不是被除数(这不仅仅意味着与 % 具有不同符号的相同值,有关详细信息,请参阅链接的 JavaDoc)。或者只是一个 if之后(if (result < 0) { result += M; } [其中 M 是除数,在您的示例中为 2])。

关于java - 在 Scala 中,为什么余数 (%) 运算符会返回负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30003811/

相关文章:

java - 如何从 Java 获取 src/main/resources 路径

postgresql - 优化数据库操作 Slick 3

scala - 我可以将中间结果存储在 Scala 大小写匹配中吗?

java - 如何在 Android 中使用 Dagger2 依赖注入(inject)和 Robolectric 进行测试?

java - Eclipse 引用图像

java - 如何区分android中的手指触摸和手写笔触摸

java - 用整数乘法和取模改进表达式

java - 格式 UTC 日期时间

arrays - 根据逻辑替换数组中的特定值

haskell - 计算表达式模n