2012-01-21 13 views

Respuesta

16

comparar el resto de la división a cero, como este:

12 % 6 == 0 

18 % 6 == 0 

20 % 6 ~= 0 

El operador de módulo (%) devuelve el resto de la división. Para 12 y 6 es 0, pero para 20 y 6 es 2.

La fórmula que utiliza es: a % b == a - math.floor(a/b)*b

+2

Lo bueno de% es que funciona en números reales, así – etandel

0

El problema de usar el operador de módulo es decir, que no funciona correctamente en números negativos . Si vas a utilizar los números negativos, utilice math.fmod lugar:

[email protected] ~ $ lua 
> return -13%6 
5 
> return 13%6 
1 
> return math.fmod (-13, 6) 
-1 
> return math.fmod (13, 6) 
1 
> 
+0

Para las comparaciones a 0, el operador módulo parece funcionar bien. No es necesario hacer una llamada de función adicional. – BMitch

+0

De hecho, ese es un buen punto. –

+1

Si '-13% 6 == 5' es incorrecto, es una cuestión de opinión. Este es a menudo el comportamiento que desea. – Eric

Cuestiones relacionadas