CASINOS Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 onjour J'ai 2 variables avec des valeurs numérique, et je n'arrive pas a trouver une formule pour les diviser entre elles pour obtenir un nouveau nome que le mettrais dans une étiquette exemple : variable a = 28 et variable b = 56 >>> c = (a/b)*100 Merci par avance
mprinfo Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 Il faut utiliser tonumber si ce sont des VG Autrement si je ne me trompe pas C = a/b*100 Envoyé de mon SM-G900F en utilisant Tapatalk
Berale64 Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 a = 28; b = 56; c = (a/b)*100; print (c); [DEBUG] 09:06:29: 50 mprinfo: laisse tomber la mirabelle 1
mprinfo Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 Manque pas une parenthèse ? Il est évident que l'on déclare a et b avant Envoyé de mon SM-G900F en utilisant Tapatalk
mprinfo Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 Oups sous Tapatalk il manque une parenthèse Tu n'es d'ailleurs pas obliger d'en mettre car tu n'as que des divisions et multiplication Envoyé de mon SM-G900F en utilisant Tapatalk
Lazer Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 Pourquoi alourdir le code, en plus ça fatigue les doigts a = 28 b = 56 c = a/b*100 print (c) Par contre si on voulait faire les choses proprement on ferait : a = 28 b = 56 c = a/b*100 print (tostring(c)) et si on veut limiter la portée des variables, et qu'on n'a pas besoin de conserver le résultat du calcul, on peut faire directement : local a = 28 local b = 56 print (tostring(a/b*100)) 1
jojo Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 @ CASINO, pour diviser 2 nombres, tu utilises le signe / entre les deux nombres
Berale64 Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 on peut aussi se poser la question de l’opportunité de faire 100*a/b
JossAlf Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 Et pour afficher le résultat dans l'"étiquette" tu utilises ce genre de chose : fibaro:call(N°ID_du_module_Virtuel,"setProperty","ui.Label1.value", tostring(a/b*100)) 1
jojo Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 Heureusement que JossAlf est làpour nous remettre dans le droit chemin, car on partait en couille ...
mprinfo Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 Jojo tu deviens vulgaire mdr Envoyé de mon SM-G900F en utilisant Tapatalk
JossAlf Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 J'avais jamais remarqué que Jojo avait le même avatar que moi en miroir Bon je suis un peu moins bleu que toi. PS : en plus on partage le même surnom "jojo"
CASINOS Posté(e) le 26 novembre 2015 Auteur Signaler Posté(e) le 26 novembre 2015 MERCI a tous pour votre aide Je valide la solution de JossAlf qui me permet de récupérer le résultat dans une étiquette
CASINOS Posté(e) le 26 novembre 2015 Auteur Signaler Posté(e) le 26 novembre 2015 Avec 2.fibaro:call(N°ID_du_module_Virtuel,"setProperty","ui.Label1.value", tostring(a/b*100)) juste pour perfectionner le résultat, j'obtiens un nombre avec 12 chiffres après la virgule, comment finir a 2 chiffres après la virgule ? Encore Merci
Lazer Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 Tu peux arrondir par excès avec la fonction math.ceil() Tu peux arrondir par défaut avec la fonction math.floor() Tu peux aussi spécifier le format exact avec string.format() Exemples : fibaro:call(ID_du_module_Virtuel, "setProperty", "ui.Label1.value", tostring(math.ceil(a/b*100))) -- Nombre entier arrondi par excès fibaro:call(ID_du_module_Virtuel, "setProperty", "ui.Label1.value", string.format("%.2f", a/b*100)) -- 2 chiffres après la virgule
jojo Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 http://lua-users.org/wiki/SimpleRound local function roundToNthDecimal(num, n) local mult = 10^(n or 0) return math.floor(num * mult + 0.5) / mult end source : Google
mprinfo Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 Toujours au top pour le lua notre jojo Moi va falloir que je m'y remette un peu ça va être dur dur Envoyé de mon SM-G900F en utilisant Tapatalk
jojo Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 non mprinfo, ce n'est pas moi, c'est Google qui connait bien le lua Il faut juste lui poser les bonnes questions
Berale64 Posté(e) le 26 novembre 2015 Signaler Posté(e) le 26 novembre 2015 Tu multiplies par 100, tu prends la partie entière puis tu divises par 100. Simple et efficace.
CASINOS Posté(e) le 26 novembre 2015 Auteur Signaler Posté(e) le 26 novembre 2015 Les 2 solutions de Lazer fonctionnent parfaitement et ont l'avantage de tenir directement dans la ligne de mise du résultat dans l'étiquette Encore MERCI 1
Messages recommandés