Jython: analisi del testo su float contenente virgole
-
03-07-2019 - |
Domanda
Come posso analizzare un float scansionato da un foglio come testo, contenente virgole?
txt = "1,903.44"
value = float(txt) # This fails due to ',' in string
AGGIORNAMENTO: mi dispiace non sono stato chiaro. Sto usando jython 2.5, che non ha il modulo locale.
Soluzione
txt = "1,903.44"
value = float(txt.replace(',', ''))
Se hai bisogno di localizzazione, questo non funzionerà davvero, ma fa il trucco se sai che le virgole sono i tuoi separatori.
Altri suggerimenti
Usa locale.atof ()
dopo < code> locale.setlocale (locale.LC_ALL, '') .
È possibile rimuovere le virgole:
txt = txt.replace(',', '')
value = float(txt)
Userei personalmente il pacchetto decimale quando mi occupo di valori monetari per evitare insidie ??ben documentate che si verificano quando si utilizzano i punti mobili.
from decimal import Decimal
txt = txt.replace (',', '')
value = Decimal(txt)
Come notato da altri poster, questo funziona solo se è noto che la tua locale usa ',' come separatore di migliaia, ma dovrebbe farti andare nella giusta direzione.