2012-02-08 14 views

Respuesta

24

% hace una operación de resta en Java.

Para obtener un módulo adecuado, puede utilizar el resto en una función:

Es más corto usando operador ternario para hacer la corrección del zodiaco:

private int mod(int x, int y) 
{ 
    int result = x % y; 
    return result < 0? result + y : result; 
} 

Para aquellos que no les gusta el ternario operador, esto es equivalente:

private int mod(int x, int y) 
{ 
    int result = x % y; 
    if (result < 0) 
     result += y; 
    return result; 
} 
+0

Gracias Don, funciona. –

+0

@don roby: ¿qué significa este operador: return result <0? resultado + y: resultado; gracias – Kenji

+0

@Kenji - ver [wikipedia en el operador ternario?:] (http://en.wikipedia.org/wiki/%3F :) –

8

Porque si divide -2 por 6, obtendrá -2 como resto. % operador dará el resto igual que a continuación;

int remainder = 7 % 3; // will give 1 
int remainder2 = 6 % 2; // will give 0 

Para obtener el módulo:

// gives m (mod n) 
public int modulo(int m, int n){ 
    int mod = m % n ; 
    return (mod < 0) ? mod + n : mod; 
} 
+0

Bien, pero entonces ¿cómo obtengo el mod en Android? –

Cuestiones relacionadas