Je veux imprimer une valeur flottante qui a 2 chiffres entiers et 6 chiffres décimaux après la virgule. Si je n'utilise que printf("%f", myFloat)
, je reçois 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 exactement cela: un flottant tronqué.
Si mon flottant est 44.556677
, j'imprime "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.
P.S. Merci @ caf pour me corriger.
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("%.<number>f", myFloat) //where <number> - 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