2017-08-15 3 views
1

J'essaie de récupérer une valeur à partir d'une page Web qui est en notation scientifique 3.67E+17, puis le convertir en un formulaire 0.367E+18. Ou si la notation scientifique est 0.367E+18, alors récupérez exactement cette valeur. J'ai été en mesure de mettre en œuvre la partie où j'ouvre la page Web, puis trouver où ce numéro scientifique est, cependant, je n'ai pas été en mesure de convertir le numéro lui-même à la forme que je veux.Comment changer la puissance augmentée d'un exposant en Python?

je suis arrivé jusqu'ici que:

lsF = "3.18E+20" 
int(lsF[lsF.find("E")+2:]) - 18 

Je suis en mesure de déterminer le nombre de décimales que je dois changer, que ce soit à gauche ou à droite, cependant, comment puis-je les déplacer réellement?

+0

Ajouter 1 à l'exposant et diviser la mantisse par 10. – Barmar

+0

Pourquoi vous ajoutez '2' à la position de' e'? Vous devriez juste ajouter '1', puisque vous avez besoin de' + 'ou '-' pour savoir si c'est un exposant positif ou négatif. – Barmar

+0

@JohnColeman Est-ce que 'format()' vous permet de contrôler combien de chiffres avant le point décimal lors de l'utilisation de la notation exponentielle? – Barmar

Répondre

2
lsF = "3.18E+20" 
ePos = lsF.find("E") 
if (ePos): 
    mantissa = float(lsF[:ePos]) 
    exponent = int(lsF[ePos+1:]) 
else: 
    mantissa = float(lsF) 
    exponent = 0 
shift = 18 - exponent 
result = mantissa/10**shift 

result sera le nouveau mantisse pour l'exposant 18