Nếu tôi cố gắngAndroid: mà nhà điều hành cho modulo (% không làm việc với số âm)
int a=(-2)%6
tôi nhận -2 thay vì 4.
Tại sao nó hoạt động theo cách này với số âm?
Nếu tôi cố gắngAndroid: mà nhà điều hành cho modulo (% không làm việc với số âm)
int a=(-2)%6
tôi nhận -2 thay vì 4.
Tại sao nó hoạt động theo cách này với số âm?
%
hiện một hoạt động còn lại trong Java.
Để có được một mô đun thích hợp, bạn có thể sử dụng thời gian còn lại trong một chức năng:
Đó là ngắn nhất sử dụng nhà điều hành ternary để làm fixup dấu:
private int mod(int x, int y)
{
int result = x % y;
return result < 0? result + y : result;
}
Đối với những người không thích ternary nhà điều hành, điều này tương đương:
private int mod(int x, int y)
{
int result = x % y;
if (result < 0)
result += y;
return result;
}
Vì nếu bạn chia -2 cho 6, bạn sẽ nhận được -2 là số dư còn lại. % toán tử sẽ cho phần còn lại giống như dưới đây;
int remainder = 7 % 3; // will give 1
int remainder2 = 6 % 2; // will give 0
Để có được modulo:
// gives m (mod n)
public int modulo(int m, int n){
int mod = m % n ;
return (mod < 0) ? mod + n : mod;
}
OK, nhưng sau đó làm cách nào để nhận mod trong Android? –
Cảm ơn bạn Don, nó hoạt động. –
@don roby: ý nghĩa của toán tử này: kết quả trả về <0? kết quả + y: kết quả; cảm ơn – Kenji
@Kenji - xem [wikipedia trên toán tử ternary?:] (http://en.wikipedia.org/wiki/%3F :) –