Si intentoAndroid: qué operador de módulo (% no trabaja con números negativos)
int a=(-2)%6
consigo -2 en lugar de 4.
¿Por qué se comporta de esta manera con números negativos?
Si intentoAndroid: qué operador de módulo (% no trabaja con números negativos)
int a=(-2)%6
consigo -2 en lugar de 4.
¿Por qué se comporta de esta manera con números negativos?
%
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;
}
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;
}
Bien, pero entonces ¿cómo obtengo el mod en Android? –
Gracias Don, funciona. –
@don roby: ¿qué significa este operador: return result <0? resultado + y: resultado; gracias – Kenji
@Kenji - ver [wikipedia en el operador ternario?:] (http://en.wikipedia.org/wiki/%3F :) –