2012-02-08 19 views

Trả lời

24

% 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; 
} 
+0

Cảm ơn bạn Don, nó hoạt động. –

+0

@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

+0

@Kenji - xem [wikipedia trên toán tử ternary?:] (http://en.wikipedia.org/wiki/%3F :) –

8

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; 
} 
+0

OK, nhưng sau đó làm cách nào để nhận mod trong Android? –