Python Virgule Flottante Mise En Forme

J'ai vu à quelques questions au sujet de cette déjà, mais aucun que j'ai lu m'a aidé à comprendre pourquoi ce que je suis en train de faire est un échec.

J'ai donc un tas de valeurs à virgule flottante, et ils ont des précisions différentes. Certains sont de 0,1 autres sont 1.759374, etc. Et je veux le format de sorte qu'ils sont TOUS sous la forme de "+0.0000000 E+00" j'ai essayé de faire

number = '%1.7f' % oldnumber

mais cela ne fonctionne pas. Je pensais que j'étais en disant qu'il n'était "un chiffre perfor le point décimal, et 7 après, float" mais ça ne fonctionne pas. Je ne suis pas vraiment avoir les exemples de la doc, qui ne semblent pas à même de s'embêter avec "avant et après le point décimal", et je n'ai pas trouver une question qui a été avant et après le point décimal de fixation.

Maintenant, je sais que certains de mes numéros sont 0.0437 ou similaire, et je veux qu'elles apparaissent comme 4.3700000 E-02 ou quelque chose. J'étais en espérant qu'il ferait le E peu sur elle-même, mais si ça ne marche pas comment puis-je faire?

Ici est exactement la ligne que j'ai:

RealValConv =   '%1.7g' % struct.unpack('!f',    RealVal.decode('hex'))[0]

RealVal est un nombre hexadécimal qui représente la valeur que je veux.

Aussi, c'est en Python 2.7

Vous souhaitez utiliser g plutôt que f si vous voulez notation scientifique. Par exemple, "%1.7g" % .0000012323 devient '1.2323e-06'. Est-ce le comportement que vous voulez?
Hmm, je ne sais pas pourquoi, mais qui ne fonctionne pas. J'utilise python 2.7, est-ce que la matière? C'est le comportement que je voulais.
%g utilise %f dans certains cas, par exemple, la mise en forme math.pi avec %1.7g résultats dans 3.141593. %e utilise toujours le "e" de la notation.

OriginalL'auteur CamelopardalisRex | 2013-09-10