python - 将字符串转换为浮点数(货币),但小数点多于一位
问题描述
所以我在网上抓取脚柜网站,现在当我得到价格时,我得到的价格超过小数点。
我想把它四舍五入到小数点后两位,我该怎么做?
我的价目表:
90.00
170.00
198.00
137.99137.99158.00
当我尝试浮动功能/方法时出现错误,有人可以帮忙:)
print(float(Price))
90.0
170.0
198.0
ValueError: could not convert string to float: '137.99137.99158.00'
我也想将它四舍五入到小数点后两位,所以 90.0 将变为 90.00 :)
解决方案
在再次查看您的价格后,在我看来,多个小数点的问题是由于价格之间缺少空格。也许网络爬虫需要修复?如果你想继续你所拥有的,你可以用正则表达式来做。但我的解决方法只有在价格总是以两位小数给出时才有效。
import re
list_prices = [ '90.00', '170.00', '198.00', '137.99137.99158.00' ]
pattern_price = re.compile(r'[0-9]+\.[0-9]{2}')
list_prices_clean = pattern_price.findall('\n'.join(list_prices))
print(list_prices_clean)
# ['90.00', '170.00', '198.00', '137.99', '137.99', '158.00']
推荐阅读
- r - 如何在R中获得第一次出现的字符
- javascript - 使用带有钩子的反应原生选择器
- server - AG Grid 服务器端模型 - 在服务器端 ag 网格模型中可以呈现的最大记录数是多少?
- python - 用现有实例初始化超级?
- python - 是否有更简洁的方法可以将 10 个或更多值的列表传递给 python2.7 中的类及其函数并执行它们?
- android - Build.gradle 文件损坏
- python - 无法从“bokeh.plotting”导入名称“Scatter”
- c# - Web Api - 正文数据序列化问题出现空值到未使用的 DTO 属性
- python - 在 Python 中解析 JSON 数据
- elasticsearch - 大半径的 Elasticsearch 地理距离查询优先级