Bonjour à tous,
Je rédige un script shell avec bash.
Je récupère une donnée de puissance à l'aide de mosquitto.
Le problème c'est que c'est un double.
Il peut prendre les formes suivantes :
-0.0
-10.8
-250.49
J'ai essayé avec bc mais je dois peut être mal l'utiliser !
Voici le code
https://debian-facile.org/paste-2560EE6FD6-fc785a372efa20aaa23819943749f060
Résultat du debug
https://debian-facile.org/paste-AAE1DA6606-a05c916b341d3828ec9f743bbb436aa3
Je reçois : powerAC=31.7
et powerAC_entier=$(echo "$powerAC" | bc)
me donne powerAC_entier=31.7
Merci pour vos conseils
# s'affranchir de la virgule ?
Posté par NeoX . Évalué à 4 (+1/-0).
tes exemples ont tous un chiffre apres la virgule
si tu fais x10 tu n'as plus de virgule
puis tu compares à 3140 ou 3150 au lieu de 314 et 315 :D
# scale ou cut
Posté par harlock974 . Évalué à 2 (+1/-0).
Bonjour. Tu peux essayer :
ou
echo $powerAC | cut -d '.' -f 1
# bc -l ....
Posté par totof2000 . Évalué à 3 (+1/-0).
… pour les nombres à virgule flottante.
# Pourquoi .....
Posté par totof2000 . Évalué à 2 (+0/-0).
… faire un script shell qui fait plein de trucs puis appeler du python ?
Pourquoi ne pas tout faire en python ? Ce serait plus cohérent. parce que faire du shell qui appelle bc, pus un autre truc qui appelle Python … je suis sûr que Python contient déjà tout ce qu'il faut.
# Bash n'est pas fait pour traiter des nombres
Posté par Voltairine . Évalué à 2 (+0/-0). Dernière modification le 07 avril 2025 à 18:03.
Surtout des décimaux comme l'on fait remarquer les commentaires précédents.
Mais tu peux les traiter comme des chaînes de caractères :
Il y a d'autres solutions, avec printf par exemple.
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.