J'ai un gros fichier avec des nombres sous la forme 6,52353753563E-7
. Il y a donc un exposant dans cette chaîne. float()
meurt à ce sujet. Bien que je puisse écrire du code personnalisé pour pré-traiter la chaîne en quelque chose que je peux manger, je suis à la recherche de la façon pythonique de les convertir en un flottant (quelque chose comme une chaîne de format passée quelque part). Je dois dire que je suis surpris float()
ne peut pas gérer les chaînes avec un tel exposant, c'est assez fréquent. J'utilise python 2.6, mais 3.1 est une option si besoin est.Analyse d'une chaîne représentant un flottant * avec un exposant * en Python
6
A
Répondre
13
Rien à voir avec l'exposant. Le problème est une virgule au lieu du point décimal.
>>> float("6,52353753563E-7")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): 6,52353753563E-7
>>> float("6.52353753563E-7")
6.5235375356299998e-07
Pour une approche générale, voir locale.atof()
1
Votre problème n'est pas dans l'exposant mais la virgule. avec python 3.1:
>>> a = "6.52353753563E-7"
>>> float(a)
6.52353753563e-07
Questions connexes
- 1. Java analyse une chaîne de flottants dans un tableau flottant?
- 2. Python: mplot3d, représentant un solide
- 3. Analyse de 'chaîne de temps' avec Python?
- 4. analyse syntaxique en python
- 5. Comment puis-je obtenir un algorithme pour faire une exponentiation d'un exposant flottant?
- 6. Comment convertir un flottant en chaîne indépendamment des paramètres régionaux?
- 7. Conversion d'une chaîne en un type de données flottant
- 8. Analyse Wav en python
- 9. Analyse HTML en Python
- 10. Analyse factorielle en python
- 11. Comment analyser les chaînes représentant des nœuds xml.dom.minidom en python?
- 12. vb.net convertir un nombre exposant à un nombre entier
- 13. Convertir un flottant en équivalent entier
- 14. nombre flottant python
- 15. conversion de chaîne représentant le format HH: MM: SS.sss en format HH: MM: SS.ssssss en python
- 16. analyse d'une chaîne, en utilisant un script d'action
- 17. Multiplication d'une chaîne avec un nombre en python
- 18. analyse d'une chaîne en C#
- 19. Imprimer un mot d'une chaîne en python
- 20. Convertir un fichier en chaîne Python HEX
- 21. pubDate RSS analyse bizarrerie avec Beautifulsoup/Python
- 22. analyse de chaîne en C
- 23. Comment créer un objet Crypt :: RSA à partir d'un module, d'un exposant et d'un exposant privé?
- 24. Schéma: En utilisant seulement R6RS, comment puis-je déterminer la mantisse d'un nombre flottant et exposant
- 25. Comment retourner un flottant en commençant à un certain index dans une chaîne?
- 26. Comment en C# pour reformater une chaîne, représentant une décimale, avoir un séparateur de groupe d'espace?
- 27. Convertir un flottant négatif en positif
- 28. Comment convertir un nombre flottant en binaire?
- 29. Setprecision() pour un nombre flottant en C++?
- 30. Analyse du fichier texte en python
Correct. Incidemment, si vous tapez "6,52353753563E-7" dans l'invite Python, il est analysé comme le tuple (6, 5235.3753563) - assez évident pourquoi, il semble juste étrange. –
Ah, merci. Je vais le marquer comme accepté quand le minuteur me le permet. – Lucas
Sur une note connexe, puis-je faire en sorte que python reconnaisse la virgule? C# et Java peuvent le faire. De nombreux endroits dans le monde utilisent une virgule comme séparateur décimal. – Lucas