Jython: analyse du texte en float contenant des virgules
-
03-07-2019 - |
Question
Comment analyser un flotteur numérisé d'une feuille sous forme de texte contenant des virgules?
txt = "1,903.44"
value = float(txt) # This fails due to ',' in string
UPDATE: Désolé je n'ai pas été clair. J'utilise jython 2.5, qui n'a pas le module de locale.
La solution
txt = "1,903.44"
value = float(txt.replace(',', ''))
Si vous avez besoin de la localisation, cela ne fonctionnera pas vraiment, mais vous aurez l'astuce si vous savez que les virgules sont vos séparateurs.
Autres conseils
Utilisez locale.atof ()
après < code> locale.setlocale (locale.LC_ALL, '') .
Vous pouvez effacer les virgules:
txt = txt.replace(',', '')
value = float(txt)
J'utiliserais personnellement le paquet décimal lorsqu'il s'agit de valeurs monétaires pour éviter pièges bien documentés qui se produisent lors de l'utilisation de points flottants.
from decimal import Decimal
txt = txt.replace (',', '')
value = Decimal(txt)
Comme indiqué par d'autres affiches, cela ne fonctionne que si votre région est connue pour utiliser ',' comme séparateur de milliers, mais devrait vous faire avancer dans la bonne direction.