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
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