je reçois une température d'un module esp12 qui m'envoie une température avec une precision au centième donc 24.63 par exemple.
Mon problème c'est je souhaite envoyer cette température a ma domotique (Domoticz) qui n'aime pas trop les centaines... lui c'est plutôt les dizaines qu'il préfère !
Donc, après pas mal de recherches infructueuses, quelqu'un pourrait-il me dire comment tronquer 24.63 en 24.6 (l'arrondi je sais faire) pour que je puisse envoyer cette valeur a Domoticz, je ne veux pas faire de print ! je veux pourvoir utiliser mon chiffre tronquer
Et s’il fait 3° vous vous retrouvez à nouveau avec un espace...
il faut dans l’appel à votre fonction dtostrf() mettre pour la précision un nombre négatif, ça dit à la fonction de cadrer à gauche au lieu de droite, ce qui fait que votre nombre commence directement dans le buffer ASCII (et des blancs sont rajoutés éventuellement à la fin)
alexbi:
qui m'envoie une température avec une precision au centième
Qui t'envoie une température avec deux chiffres après la virgule.
La précision c'est autre chose.
Si tu as un demi degré de precision c'est dejà pas mal.
La taille précisée en argument 2 est la taille minimum de la chaine.
Si on ne veut pas d'espace il suffit de mettre 0 et la taille de la chaine sera la taille minimum (mais suffisante) pour écrire le nombre compte tenu de la précision indiquée.
La taille précisée en argument 2 est la taille minimum de la chaine.
Si on ne veut pas d'espace il suffit de mettre 0 et la taille de la chaine sera la taille minimum (mais suffisante) pour écrire le nombre compte tenu de la précision indiquée.
Oui c’est aussi une option, j’ai supposé qu’il voulait les espaces pour un cadrage dans un champs ou LCD (ce qui efface les anciens chiffres). si pas de besoin de ce côté là, effectivement 0 résout le problème
le mieux c'est devité de travailler avec des virgules, c'est plus simple.
PAr exemple pour 23, 56°C...
pour eviter les chiffres a virgule, tu multiplie par 100 ==> soit 2356
Pour 10°C => 1000
pour 3°C => 300
tu peux faire la meme avec ton arduino, aucun soucis, si tu multiplie d'un coté il faut diviser sur ta page web, par 100... pour retrouver la bonne valeur...
hazerty565:
le plus simple c'est de travailler a la source... le mieux c'est devité de travailler avec des virgules, c'est plus simple.
bof ce n'est ni plus simple, ni mieux...
en pratique le chiffre après la virgule des capteurs bas de gamme qu'on trouve couramment n'est pas pertinent, donc souvent je le laisse tomber carrément...