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
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
Vous devez vous connecter pour publier un commentaire.
Toujours, toujours, préférez
.format
sur%
mise en forme. Voici encore une autre raison, il est préféré.OriginalL'auteur leon
Vous pouvez utiliser le format de notation scientifique: quelque Chose comme ceci:
Ou, si vous voulez contrôler la précision, vous pouvez utiliser la méthode de mise en forme comme sugged par @leon approche (+1).
Mes problèmes avec la longueur d'une feuille de problème, pas un problème de programme. (J'ai ouvert le fichier en tant que .csv et excel paramétré par défaut pour être plus courte) Désolé pour le en supposant que c'était vous, quand c'était moi. Dizzy jours.
Thnx pour me dire que. Apprécier ça!
OriginalL'auteur Manoj Pandey