CASINOS Posté(e) le 26 novembre 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 26 novembre 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Berale64 Posté(e) le 26 novembre 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 26 novembre 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 26 novembre 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 26 novembre 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 26 novembre 2015 Signaler Partager Posté(e) le 26 novembre 2015 @ CASINO, pour diviser 2 nombres, tu utilises le signe / entre les deux nombres Lien vers le commentaire Partager sur d’autres sites More sharing options...
Berale64 Posté(e) le 26 novembre 2015 Signaler Partager Posté(e) le 26 novembre 2015 on peut aussi se poser la question de l’opportunité de faire 100*a/b Lien vers le commentaire Partager sur d’autres sites More sharing options...
JossAlf Posté(e) le 26 novembre 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 26 novembre 2015 Signaler Partager Posté(e) le 26 novembre 2015 Heureusement que JossAlf est làpour nous remettre dans le droit chemin, car on partait en couille ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 26 novembre 2015 Signaler Partager Posté(e) le 26 novembre 2015 Jojo tu deviens vulgaire mdr Envoyé de mon SM-G900F en utilisant Tapatalk Lien vers le commentaire Partager sur d’autres sites More sharing options...
JossAlf Posté(e) le 26 novembre 2015 Signaler Partager 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" Lien vers le commentaire Partager sur d’autres sites More sharing options...
CASINOS Posté(e) le 26 novembre 2015 Auteur Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
CASINOS Posté(e) le 26 novembre 2015 Auteur Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 26 novembre 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 26 novembre 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 26 novembre 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 26 novembre 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Berale64 Posté(e) le 26 novembre 2015 Signaler Partager Posté(e) le 26 novembre 2015 Tu multiplies par 100, tu prends la partie entière puis tu divises par 100. Simple et efficace. Lien vers le commentaire Partager sur d’autres sites More sharing options...
CASINOS Posté(e) le 26 novembre 2015 Auteur Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés