web-dev-qa-db-fra.com

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

58
Roman Rdgz

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.

111
Beginner

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.

15
dasblinkenlight
printf("%.<number>f", myFloat) //where <number> - digit after comma

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

6
Igor Shubin
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.

2
rohit

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

1
Charlie Brown

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

0
Shankar Raju