Je veux vérifier si un nombre est divisible par un autre nombre:
for i = 1, 100 do
if i % 2 == 0 then
print( i .. " is divisible.")
end
end
Cela devrait fonctionner sans aucun problème, mais avec Lua sur mon serveur, le script ne s'exécute pas s'il y a un %
dans le script ... Je ne sais pas quelle est la raison, alors existe-t-il un "remplacement"? Pour que je puisse vérifier la divsibilité des nombres?
Je vous remercie.
Ce n'est pas idéal, mais selon le Lua 5.2 Reference Manual :
a% b == a - math.floor (a/b) * b
Utilisez math.fmod(x,y)
qui fait ce que vous voulez:
Retourne le reste de la division de x par y qui arrondit le quotient vers zéro.
function mod(a, b)
return a - (math.floor(a/b)*b)
end
Utiliser math.fmod
, accroding lua manualmath.mod
a été renommé en math.fmod
dans lua 5.1.
for i = 1, 100 do
if (math.mod(i,2) == 0) then
print( i .. " is divisible.")
end
end
Lua 5.0 ne supportait pas l'opérateur %
.
Lua supporte les opérateurs arithmétiques habituels: le binaire + (addition), - (soustraction), * (multiplication),/(division) et ^ (exponentiation); et unaire - (négation).
Cependant, Lua 5.1 prend en charge l'opérateur %
.
Lua supporte les opérateurs arithmétiques habituels: le binaire + (addition), - (soustraction), * (multiplication),/(division),% (modulo) et ^ (exponentiation); et unaire - (négation).
Si possible, je vous recommanderais de mettre à jour. Si cela n’est pas possible, utilisez math.mod
, qui figure dans l’une des fonctions mathématiques in 5.0 (il a été renommé math.fmod
dans Lua 5.1