在 中Python 3.5,我想使用locale.atof以下代码将德语数字字符串转换为浮点数:
import locale
from locale import atof
locale.setlocale(locale.LC_ALL, 'de_DE')
number = atof('17.907,08')
Run Code Online (Sandbox Code Playgroud)
然而,这提出了一个ValueError:
ValueError: could not convert string to float: '17.907.08'
Run Code Online (Sandbox Code Playgroud)
atof()为了这个而生的吗?
数字中不能有多个点 ( .) 或逗号 (, ) ,因为这两种符号都用于atof()分隔数字的小数部分和整数部分。
由于 Python 不需要点来正确表示您的数字,因此您应该删除它们并只保留逗号:
import locale
from locale import atof
locale.setlocale(locale.LC_ALL, 'de_DE')
string_nb = '17.907,08'
string_nb = string_nb.replace('.', '')
number = atof(string)
Run Code Online (Sandbox Code Playgroud)