E la notation dans le C
Je suis en train de lire C de la Programmation - Une approche moderne de la, et je suis tombé sur la section à propos de l'E-notation. J'ai des difficultés à les comprendre.
Prendre le code suivant:
printf("%12.5e", 30.253);
Présente les résultats à la sortie suivante:
3.02530e+01
Quelqu'un peut m'expliquer comment cela fonctionne? Quel est le nombre 12 signifier ici?
OriginalL'auteur user500468 | 2015-04-28
Vous devez vous connecter pour publier un commentaire.
La
printf
"%12.5e"
format indiqueprintf
pour convertir ledouble
(oufloat
) argument une chaîne de caractères en notation exponentielle avec 5 chiffres après la.
et un total d'au moins 12 caractères. Dans votre exemple, la sortie contient en fait un espace avant le numéro:3.02530e+01
à faire pour un total de12
caractères. Pour le rendre plus évident, vous pouvez essayer:Et vérifier que la sortie est:
Notation exponentielle produit par
printf()
utilise toujours un seul chiffre avant la.
et un exposant (e+01
ici) représentant la puissance de10
multiplier le nombre. C'est une notation couramment utilisé dans la communauté scientifique:Vous pouvez utiliser cette syntaxe pour écrire à virgule flottante constantes dans votre
C
code source.C'est l'idée même de la notation scientifique. <chiffres>.<chiffres> * 10^<exposant>.
OriginalL'auteur chqrlie
"%12.5e"
signifie:12
: résultat devrait occuper 12 caractères (par défaut justification à droite).5
: résultat devrait avoir 5 décimalese
: résultat sera exponencial notationVous pouvez essayer de jouer avec la valeur et de voir par vous-même comment les changements de sortie.
Voir: http://en.wikipedia.org/wiki/Printf_format_string
OriginalL'auteur Jan Spurny