在Java中,求余操作通常使用模運算符(%)。但是,當涉及到負數時,結果可能會得到負數。為了避免這種情況,你可以使用以下方法:
int a = 7;
int b = 3;
int result = Math.floorMod(a, b);
System.out.println("Result: " + result); // 輸出:Result: 1
int a = -7;
int b = 3;
int result = a >>> b;
System.out.println("Result: " + result); // 輸出:Result: 1
請注意,這種方法僅適用于整數(int和long)。如果你需要處理浮點數,可以使用以下方法:
double a = -7.0;
double b = 3.0;
double result = Math.floorDiv(a, b) * b;
System.out.println("Result: " + result); // 輸出:Result: -6.999999999999999
double a = -7.0;
double b = 3.0;
double result = Math.round((a / b) * b);
System.out.println("Result: " + result); // 輸出:Result: -6
根據你的需求和數據類型,可以選擇合適的方法來避免求余操作中的負數問題。