为什么java中的模运算符与wolfram不同?
我的公式是:
var = (var-x) % 10例如,wolfram给出了正确的结果。
(0 - 1) % 10 = 9Java给-1。
我怎么才能最好地解决这个问题呢?
发布于 2013-12-18 12:34:59
这就是定义%的方式,并且应该在大多数编程语言中工作,即使有时相反的情况也是有用的。
我建议实现您自己的模块化方法:
int positiveModulo(a, b) {
int result = a % b;
if (result < 0) { result += b; }
return result;
}发布于 2013-12-18 12:31:18
如果需要的话,我会为那个案子写我自己的国防部,比如
public int nonNegativeModOfDiff(int a, int b,int n) {
int mod = (a-b)%n;
return mod >= 0 ? mod : mod + n;
}发布于 2013-12-18 12:33:55
这应该能起作用:
class ModTest {
public static void main (String[] args) {
int x = -1;
int m = 10;
int y = mod(x, m);
System.out.println(y);
}
static int mod(int x, int m) {
return (x % m + m) % m;
}
}https://stackoverflow.com/questions/20658248
复制相似问题