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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top