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 :oops: )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
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.