Lua signe décimal?
Question
Je l'ai utilisé cela dans d'autres langues, mais lua semble manquer cette fonction assez utile.
Peut-on de vous belles chappies me fournir une fonction Lua pour obtenir le signe du nombre qui lui est passé?
La solution
Vous pouvez vérifier la sign
comme ceci:
i = -2
if i == math.abs(i) then -- or i >= 0
print "positive"
else
print "negative"
end
Autres conseils
function math.sign(x)
if x<0 then
return -1
elseif x>0 then
return 1
else
return 0
end
end
Juste au cas où quelqu'un trébuche sur celui :, voici ma version en quelque sorte plus courte:
function sign(x)
return x>0 and 1 or x<0 and -1 or 0
end
Je pense que l'idée est de revenir 1 ou -1 pour représenter positif ou négatif. Je ne pense pas que vous le voulez revenir 0. pourrait avoir des effets désastreux. Imaginez essayer de changer le signe d'une valeur en multipliant par signe (x) quand il retourne 0. Au lieu de changer le signe que vous souhaitez modifier la valeur à 0.
Je tiens à
function sign(x)
return (x<0 and -1) or 1
end
Vous pouvez également obtenir le signe d'un nombre comme ceci:
x/ math.abs(x)
Je ne l'utilise que pour les entiers et un depuis Lua ne distingue pas ints de flotteurs, je ne l'utilise pas dans Lua du tout.