C: printf une valeur float

Je veux imprimer une valeur flottante qui a 2 chiffres entiers et 6 chiffres décimaux après la virgule. Si je viens d’utiliser printf("%f", myFloat) une valeur tronquée.

Je ne sais pas si cela se produit toujours en C, ou simplement parce que j’utilise C pour les microcontrôleurs (CCS pour être exact), mais à la référence, cela indique que %f obtient juste cela: un flottant tronqué.

Si mon float est 44.556677 , je suis en train d’imprimer "44.55" , uniquement les deux premiers chiffres décimaux.

La question est donc … comment puis-je imprimer mes 6 chiffres (et seulement les six, au cas où j’aurais des zéros après cela ou quelque chose du genre)?

Vous pouvez le faire comme ça:

 printf("%.6f", myFloat); 

6 représente le nombre de chiffres après le point.

PS Merci @caf de m’avoir corrigé.

printf("%9.6f", myFloat) spécifie un format de 9 caractères au total: 2 chiffres avant le point, le point lui-même et six chiffres après le point.

 printf("%.f", myFloat) //where  - digit after comma 

http://www.cplusplus.com/reference/clibrary/cstdio/printf/

 printf("%0k.yf" float_variable_name) 

Ici, k représente le nombre total de caractères à imprimer. k = x + 1 + y ( + 1 pour le point) et float_variable_name est la variable float que vous souhaitez imprimer.

Supposons que vous souhaitiez imprimer x chiffres avant le point décimal et y chiffres après. À présent, si le nombre de chiffres avant float_variable_name est inférieur à x, le nombre de zéros précédant celui-ci sera automatiquement ajouté automatiquement.

Utilisez %.6f . Cela imprimera 6 décimales.

Vous devez utiliser %2.6f au lieu de %f dans votre déclaration printf