1

シートからスキャンしたフロートをコンマを含むテキストとして解析するにはどうすればよいですか?

txt = "1,903.44"
value = float(txt) # This fails due to ',' in string

更新:申し訳ありませんが、明確ではありませんでした。locale モジュールを持たない jython 2.5 を使用しています。

4

4 に答える 4

3
txt = "1,903.44"
value = float(txt.replace(',', ''))

ローカライズが必要な場合、これは実際には機能しませんが、コンマが区切り記号であることがわかっている場合はうまくいきます。

于 2009-04-30T16:32:39.347 に答える
3

locale.atof()の後に使用しlocale.setlocale(locale.LC_ALL, '')ます。

于 2009-04-30T16:32:44.697 に答える
3

コンマを取り除くことができます:

txt = txt.replace(',', '')
value = float(txt)
于 2009-04-30T16:33:23.790 に答える
0

個人的には、浮動小数点を使用するときに発生する十分に文書化された落とし穴を避けるために、金銭的な値を扱うときに decimal パッケージを使用します。

from decimal import Decimal
txt = txt.replace (',', '')
value = Decimal(txt)

他のポスターで指摘されているように、これはロケールが「,」を桁区切り記号として使用することがわかっている場合にのみ機能しますが、正しい方向に進むはずです。

于 2009-04-30T16:46:43.307 に答える