例如,(-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/