Bonjour,
J'ai un float qui s'écrit de cette manière : 0.0004
J'aimerai l'écrire de cette façon : 0.404E-03
En faisant print '%.3E' % 0.000404 j'arrive à l'écrire : 4.040E-04
Comment faire pour qu'il commence par 0 ?
Merci.
Bonjour,
J'ai un float qui s'écrit de cette manière : 0.0004
J'aimerai l'écrire de cette façon : 0.404E-03
En faisant print '%.3E' % 0.000404 j'arrive à l'écrire : 4.040E-04
Comment faire pour qu'il commence par 0 ?
Merci.
Bonjour,
J'ai bien peur que ce ne soit pas prévu, car la notation scientifique est bien comme '4.040E-04'.
Par contre, on peut 'bricoler' quelque chose comme ça:
On peut même mettre le nombre de chiffres après la virgule en argument de la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 def formatexp(nb): # on formate en notation scientifique x ='%E' % (nb,) # on extrait la 1ère partie: tout ce qui est avant le 'E': x1 = x[:x.find('E')] # on extrait l'exposant: tout ce qui est après le 'E' x2 = x[x.rfind('E')+1:] # on reformate l'ensemble en corrigeant les 2 parties, et on le retourne return "%.3fE%d" % (float(x1)/10, int(x2)+1) print formatexp(0.000404) 0.404E-3
Vérifie quand même que ça colle avec toutes tes données: je n'ai pas vérifié tous les cas possibles.
[edit]: la même fonction plus condensée, avec le nb de chiffres après la virgule en argument:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 def formatexp(nb, cav=3): x1, x2 = ('%E' % (nb,)).split('E') return ("%." + "%d" % cav + "fE%d") % (float(x1)/10, int(x2)+1)
Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
Mes recettes python: http://www.jpvweb.com
Ca marche nickel mais il me manque le 0 devant le 3.
C'est à dire 0.404E-03.
Bonjour,
On va supposer que le zéro n'est ajouté que quand l'exposant n'a qu'un seul chiffre. Ex: '-09' mais '-10'.
Par ailleurs, un exposant positif sera toujours précédé de '+' mais il est possible d'omettre le '+': il suffit de remplacer la ligne exp=... par:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 def formatexp(nb, cav=3): x1, x2 = ('%E' % (nb,)).split('E') n = int(x2)+1 exp = ['+', '-'][n<0] + ("%d" % (abs(n),)).zfill(2) return ("%." + "%d" % cav + "fE%s") % (float(x1)/10, exp) print formatexp(0.000404) 0.404E-03
Code : Sélectionner tout - Visualiser dans une fenêtre à part exp = ['', '-'][n<0] + ("%d" % (abs(n),)).zfill(2)
Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
Mes recettes python: http://www.jpvweb.com
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager