シートからスキャンしたフロートをコンマを含むテキストとして解析するにはどうすればよいですか?
txt = "1,903.44"
value = float(txt) # This fails due to ',' in string
更新:申し訳ありませんが、明確ではありませんでした。locale モジュールを持たない jython 2.5 を使用しています。
シートからスキャンしたフロートをコンマを含むテキストとして解析するにはどうすればよいですか?
txt = "1,903.44"
value = float(txt) # This fails due to ',' in string
更新:申し訳ありませんが、明確ではありませんでした。locale モジュールを持たない jython 2.5 を使用しています。
txt = "1,903.44"
value = float(txt.replace(',', ''))
ローカライズが必要な場合、これは実際には機能しませんが、コンマが区切り記号であることがわかっている場合はうまくいきます。
locale.atof()
の後に使用しlocale.setlocale(locale.LC_ALL, '')
ます。
コンマを取り除くことができます:
txt = txt.replace(',', '')
value = float(txt)
個人的には、浮動小数点を使用するときに発生する十分に文書化された落とし穴を避けるために、金銭的な値を扱うときに decimal パッケージを使用します。
from decimal import Decimal
txt = txt.replace (',', '')
value = Decimal(txt)
他のポスターで指摘されているように、これはロケールが「,」を桁区切り記号として使用することがわかっている場合にのみ機能しますが、正しい方向に進むはずです。