Page 1 sur 2
Arrondir Mesure Delat T°
Publié : 20 nov. 2016, 20:04
par balajol
Bonsoir,
J'ai récupéré ce petit script Lua sur le forum (Je ne sait plus ou, Toutes mes excuses à l' auteur

)et adapté à mes sondes;
Code : Tout sélectionner
commandArray = {}
if (devicechanged['Sonde-4-Univ-1-H-Bal.1000L'])
then
if (otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L'] >= 0)
then
commandArray['UpdateDevice'] = 561 .. '|0|'.. tostring(otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L'])
end
end
return commandArray
Je voudrai avoir la valeur retournée avec 1 Chiffre après la virgule (Actuellement 14

)
Pourriez vous m'aider ?
Par avance Merci
Cdt
Bertrand
Re: Arrondir Mesure Delat T°
Publié : 20 nov. 2016, 20:35
par thier
J'utilise cette fonction pour arrondir un calcul
Code : Tout sélectionner
-- Fonction Arrondir à deux décimales
function arrondir(num, dec)
if num == 0 then
return 0
else
local mult = 10^(dec or 0)
return math.floor(num * mult + 0.5) / mult
end
il suffit de l'utiliser dans ton script sous la forme arrondir (ton calcul,2). 2 c'est pour avoir deux décimales
Re: Arrondir Mesure Delat T°
Publié : 20 nov. 2016, 21:09
par balajol
Bonsoir Thiers,
Merci de ta réponse
J'ai bien vu cette fonction dans un script mais n'ai pas réussi à l'intégrer.
Je découvre mais un peu trop d'information à digérer..
Cdt
Bertrand
Re: Arrondir Mesure Delat T°
Publié : 20 nov. 2016, 21:28
par thier
resultat = arrondir(tostring(otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L']),2)
comme je disais arrondir (ton calcul "tostring(otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L'])" puis "," puis "2" si tu veux 2 décimales)
puis commandArray['UpdateDevice'] = 561 .. '|0|'..resultat
Re: Arrondir Mesure Delat T°
Publié : 21 nov. 2016, 00:19
par balajol
Re,
Merci de ton aide mais je bute toujours, essayé en enlevant la condition de changement d'état sonde 4, avec d'autres sondes idem ..
"Résultat" doit être incorporé comment ?
Désolé surement question de "base" mais mes journées sont trop courtes, bien compliqué pour le néophyte (Je ne suis pas informaticien)
Merci encore de ton aide
Cdt
Bertrand
Re: Arrondir Mesure Delat T°
Publié : 21 nov. 2016, 14:40
par deennoo
thier a écrit :resultat = arrondir(tostring(otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L']),2)
comme je disais arrondir (ton calcul "tostring(otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L'])" puis "," puis "2" si tu veux 2 décimales)
puis commandArray['UpdateDevice'] = 561 .. '|0|'..resultat
Stp est ce que tu peux mettre un exemple d'integration de ta fonction ?
Pour mon cas c'est bon car j'ai fait les calcul avant le command array, par contre comment integerer dans le meme script que balajol stp ?
Re: Arrondir Mesure Delat T°
Publié : 21 nov. 2016, 17:34
par thier
ça donnerai
Code : Tout sélectionner
-- Fonction Arrondir à deux décimales
function arrondir(num, dec)
if num == 0 then
return 0
else
local mult = 10^(dec or 0)
return math.floor(num * mult + 0.5) / mult
end
end
commandArray = {}
if (devicechanged['Sonde-4-Univ-1-H-Bal.1000L']) then
if (otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L'] >= 0)
then
resultat = arrondir(tostring(otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L']),1)
commandArray['UpdateDevice'] = 561 .. '|0|'.. resultat
end
end
return commandArray
Re: Arrondir Mesure Delat T°
Publié : 21 nov. 2016, 18:50
par deennoo
A bah voila j'avais une incertitude sur ou mettre resultat
Re: Arrondir Mesure Delat T°
Publié : 21 nov. 2016, 20:42
par balajol
Bonsoir,
Merci de vos retours, a priori une erreur de syntaxe

- Erreur_Arrondi.JPG (89.54 Kio) Consulté 8971 fois
J'ai essayé d' ajouter end à plusieurs endroits mais sans résultat.
Cdt
Bertrand
Re: Arrondir Mesure Delat T°
Publié : 21 nov. 2016, 20:47
par deennoo
Deux end a la fin de la fonction, une pour le if une pour la fonction.
J'ai decouvert cela cet après midi pour le script des moyennes.