Supprimer les zéro inutile printf
Résolu
a n
-
cocodu67... Messages postés 3178 Date d'inscription Statut Membre Dernière intervention -
cocodu67... Messages postés 3178 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Et-ce qu'il existe une moyen de supprimer les 0 inutiles dans un printf. Attention, la variable qui vas être affichée dans un printf varie. Le programme ne connaît donc pas à l'avance le nombre flottant qui vas être affiché.
Je sais qu'il existe une méthode de formatage pour ne garder qu'un certain nombre de chiffre après la virgule :
Je sais aussi qu'il existe %g, mais il m'arrondis les nombres. Donc ça ne me convient pas non plus.
Ce que je cherche est une technique qui permette de supprimer les 0 inutiles à la fin d'un nombre UNIQUEMENT.
Merci pour votre aide
Et-ce qu'il existe une moyen de supprimer les 0 inutiles dans un printf. Attention, la variable qui vas être affichée dans un printf varie. Le programme ne connaît donc pas à l'avance le nombre flottant qui vas être affiché.
Je sais qu'il existe une méthode de formatage pour ne garder qu'un certain nombre de chiffre après la virgule :
printf("Nombre formate : %.3lf\n", 6.876000)Mais cela ne me convient pas car si le nombre change, le formatage ne convient plus (par exemple le nombre 8.5685000).
Je sais aussi qu'il existe %g, mais il m'arrondis les nombres. Donc ça ne me convient pas non plus.
Ce que je cherche est une technique qui permette de supprimer les 0 inutiles à la fin d'un nombre UNIQUEMENT.
Merci pour votre aide
A voir également:
- Supprimer les zéros inutiles excel
- Supprimer rond bleu whatsapp - Guide
- Liste déroulante excel - Guide
- Supprimer page word - Guide
- Word et excel gratuit - Guide
- Supprimer pub youtube - Accueil - Streaming
1 réponse
Bonjour,
Pour info, le bon format à utiliser pour afficher un double dans printf() est "%f" et non "%lf".
"%g " peut être utilisé mais il va tronquer avec la précision par défaut. A toi donc d'indiquer ta précision. Par exemple : "%.7g" pour une précision de 7.
Si ça ne te convient pas, j'ai bien peur que tu doives te faire une fonction...
Pour info, le bon format à utiliser pour afficher un double dans printf() est "%f" et non "%lf".
"%g " peut être utilisé mais il va tronquer avec la précision par défaut. A toi donc d'indiquer ta précision. Par exemple : "%.7g" pour une précision de 7.
Si ça ne te convient pas, j'ai bien peur que tu doives te faire une fonction...
Effectivement, comme le nombre de zéros varie, le mieux est de faire une fonction qui place chaque chiffre après la virgule dans un tableau, parcours ce tableau en commençant par la fin et en s'arrêtant au premier zéro.
Il ne faut surtout pas commencer au début sinon 1.1250650000 deviendrait 1.125 et c'est certainement pas ce qu'il cherche à faire.
Ensuite tu pars bien sur de la fin (utilisation de strlen(buf)); et tu remontes jusqu'au '.'.
Voilou.