Format surement tout bete mais bon...

Document Actions
Réponses: 6   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

Format surement tout bete mais bon...

Posté par pasjeandupont le 15/05/2007 15:54
Bonjour,

J'ai une question toute conne, mais je ne sais pas y repondre (simplement)

J'ai un flottant, disons truc.
Je voudrais ecrire la valeur de ce flottant dans un fichier, mais au format exponentiel.
Le probleme, c'est que je ne sais pas controler le nombre de caractere dans l'exposant !

Je voudrais afficher strictement cela (sans les guillemets bien sur):

"-2.453E+01" quand truc vaut -24.53

Quand j'utilise "%g", j'obtient : "-2.453E+001", avec trois chiffres dans l'exposant...

Comment faire ?

Merci

Re: Format surement tout bete mais bon...

Posté par thiedlecques le 15/05/2007 16:14
Salut,les maths c'est pas mon fort mais ceci devrait te convenir:
code:
import pickle
A ="-2.453E+01"
B =open("toto",'w')
pickle.dump(A,B)
B.close()
B =open("toto",'r')
C = pickle.load(B)
print C
B.close()
_________________________
A+ Thierry :http://gna.org/projects/proto-mail :http://gna.org/projects/python-calendar

Re: Format surement tout bete mais bon...

Posté par pasjeandupont le 15/05/2007 16:36
Merci, mais, je ne dispose pas de la chaine
code:
A ="-2.453E+01"

je dispose du flottant qui vaut -24 et des poussieres...
C'est la conversion en string qui me pose justement probleme.... Ainsi
code:
a = -24.53
print "%12.4e" % a

donne "-2.4530e+001"
Je dois utiliser ce resultat dans un autre code archaique (que c'est pas moi qui l'ai developpe), et ce dernier ne suppporte pas ce format.
Il peut accepter que les exposant a 2 chiffres : "-2.4530e+01"...

question Re: Format surement tout bete mais bon...

Posté par thiedlecques le 15/05/2007 17:15
Je n'arrive pas à reproduire ton erreur j'ai bien -2.453e+01 à chaque fois et non -2.453e+001 .
pareil quand je met dans un fichier:
code:
import pickle
a = -24.53
b ="%12.4e" % a
print b ==> -2.453e+01
c = open("toto",'w')
pickle.dump(b,c)
c.close()
c =open("toto",'r')
d = pickle.load(c)
print d ==> -2.453e+01
_________________________
A+ Thierry :http://gna.org/projects/proto-mail :http://gna.org/projects/python-calendar

Re: Format surement tout bete mais bon...

Posté par pasjeandupont le 15/05/2007 17:22
Et bah pas moi ! :p

Et sais pas pourquoi... mais on avance !

J'utilise python 2.4.3 (enthought 1.0.0 et donc sur winxp)
Je ne pense pas avoir fait de trucs bizarres... rien ne vient a l'esprit...

une idee ?

Re: Format surement tout bete mais bon...

Posté par thiedlecques le 15/05/2007 17:29
Moi aussi j'ai python 2.4.3 mais sur gentoo .
Je vois pas si j'ai une idée je te fais signe ;)
_________________________
A+ Thierry :http://gna.org/projects/proto-mail :http://gna.org/projects/python-calendar

Re: Format surement tout bete mais bon...

Posté par thiedlecques le 15/05/2007 17:46
Rectification:
le resultat est "-2.4530e+01"
j'avais oublié le zéro avant le e
_________________________
A+ Thierry :http://gna.org/projects/proto-mail :http://gna.org/projects/python-calendar

Python.org : Le site officiel du langage Python.
Zope.org : Le site web officiel de Zope.
Daily Python-URL : Actus de l'univers Python.
Tribute to Zyons : Zyons notre ami et membre fondateur de l'Afpy, nous quittait en 2005.