En multipliant par 10000 et en tronquant 0.0780 = 780 - ça change quoi à l’affaire? Il y a toujours le zéro au bout, c’est pareil... ce zéro est significatif, il dit que vous savez que les prochaines décimales sont nulles et que ce n’est pas juste tronqué
Si vous ne voulez pas montrer les dernières décimales significatives qui sont nulles lors de l’impression il faut convertir le float en c-string et analyser la c-string pour virer les ‘0’
Effectivement les 0 ne disparaissent pas, ça permet simplement de tronquer le chiffre des valeurs au delà de la 4ème décimales sans enlever les 0....
ce 0 n'est pas spécifiquement significatif, il serait possible d'avoir 0,07801 ramené à 0,0780, la valeur est tronquée et pourtant le dernier 0 subsiste.
Bref.... je vais faire un fonction pour tester et supprimer ces 0
Merci pepe pour cet exemple que je ne vais pas manquer de scruter.
Je pensais à tort qu'une fonction de formatage de nombre existait à l'exemple de Java ou il semblerait pour supprimer les 0 "inutiles" de faire simplement
Je ferai un dtostrf() dans un buffer puis en partant de la fin du buffer (obtenu par strlen()) je remonterais tant que je trouve un zéro je le remplace par ‘\0’ (fin de chaine), en prenant soin de ne pas toucher au premier caractère pour ne pas que 0 soit transformé en chaîne vide)
Mais en pratique je ferai simplement un Serial.print(monFloat,4); en me souciant pas de 0 à la fin
Je ferai un dtostrf() dans un buffer puis en partant de la fin du buffer (obtenu par strlen()) je remonterais tant que je trouve un zéro je le remplace par ‘\0’ (fin de chaine), en prenant soin de ne pas toucher au premier caractère pour ne pas que 0 soit transformé en chaîne vide)
C'est ce que j'ai fait....
J-M-L:
Mais en pratique je ferai simplement un Serial.print(monFloat,4); en me souciant pas de 0 à la fin
Je pense que le problème devrait être vu sous un autre angle. Supprimer les zéros terminaux n'apporte pas forcément de la cohérence dans le résultat affiché. Exemple :
0.0780 --> 0.078 OK
0.07800100 --> 0.078001 Bof !
Pour moi, ce qui a du sens est la précision que l'on s'accorde à donner à la valeur. En l’occurrence, si on veut une précision de l'ordre du %, 0.078001 et 0.078, c'est la même chose.
Donc, à mon sens, ce qu'il faut rechercher, c'est l'algorithme qui ne laisse que les chiffres ayant une signification au vu de la précision demandée.
Je sais bien que tu es nouveau dans le coin, mais il y a une fonction "rechercher" sur le forum
Sauf que la fonction recherche ne comporte pas de module "translate" et que maintenant ce sujet existe en Français.... Voilà voilà....
Dans le même ordre d'idée que la remarque de Pierre.
Je viens de regarder le gain sur le nombre d'octets gagné sur une Url en supprimant le dernier 0 de chacune de mes valeurs .... dans la pire des hypothèses en une année je pourrais gagner 500ko
En modifiant les noms des variables que je passe dans l'Url et en les raccourcissant je pourrais gagner environ 10 fois plus.... et ce dans n'importe quel cas
Je ferai cette modifs sur mes variables... mais pas dans l'immédiat