我收到 ValueError:无法将字符串转换为浮点数:'8,900' [重复]
Posted
技术标签:
【中文标题】我收到 ValueError:无法将字符串转换为浮点数:\'8,900\' [重复]【英文标题】:I am getting ValueError: could not convert string to float: '8,900' [duplicate]我收到 ValueError:无法将字符串转换为浮点数:'8,900' [重复] 【发布时间】:2019-07-09 11:57:59 【问题描述】:我正在尝试解析一个包含数字的字符串,当我尝试将其转换为浮点数时,它给了我一个错误:
ValueError: 无法将字符串转换为浮点数:'8,900'
我的代码:
soup=BeautifulSoup(content,"html.parser")
element=soup.find("div","class":"_1vC4OE _3qQ9m1")
price=element.text
price_without_symbol=price[1:]
print(float(price_without_symbol));
输出:
"C:\Users\SHIVAM TYAGI\PycharmProjects\price-of- chair1\venv\Scripts\python.exe" "C:/Users/SHIVAM TYAGI/PycharmProjects/price-of-chair1/src/app.py" 回溯(最近一次通话最后): 文件“C:/Users/SHIVAM TYAGI/PycharmProjects/price-of-chair1/src/app.py”, 第 9 行,在 打印(浮动(price_without_symbol)); ValueError:无法将字符串转换为浮点数:'8,900'
【问题讨论】:
或***.com/questions/6633523/…'8,900'
的结果应该是 8.9 还是 8900?
@mkrieger1 既然是价格,那一定是8900
【参考方案1】:
根据使用的numeric convention,逗号可以表示千位分隔符或小数点。
Python float
numbers syntax 使用点 (.
) 作为小数点,并使用可选的下划线 (_
) 作为千位分隔符,仅供阅读。
这意味着您需要知道您正在阅读的数字使用哪种数字约定。
在您的情况下,您似乎正在使用 US-English 数字约定读取数字。
美国-英语 | 4,294,967,295.00
您只需要删除用作千位分隔符的逗号。
price_without_symbol=price[1:].replace(',', '')
print(float(price_without_symbol))
【讨论】:
谢谢大家......我得到了答案。 如果该答案有帮助,请将其标记为已接受。干杯!以上是关于我收到 ValueError:无法将字符串转换为浮点数:'8,900' [重复]的主要内容,如果未能解决你的问题,请参考以下文章
ValueError:无法将字符串转换为浮点数:Python中的“lisans”
ValueError:无法将字符串转换为浮点数:在 python 上绘制图形
Pyspark - ValueError:无法将字符串转换为浮点数/浮点()的无效文字
Python:ValueError:无法将字符串转换为浮点数:'0'