首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用python将字符串'100+20*50/10-9‘转换为浮动值

如何使用python将字符串'100+20*50/10-9‘转换为浮动值
EN

Stack Overflow用户
提问于 2018-04-16 10:47:06
回答 2查看 175关注 0票数 1

海意朋友

如何将字符串表达式值转换为浮点值ex:s1 = '100+20*50/10-9's1转换为float值。基于算术操作符的优先级规则,它应该给出191。但是,字符串表达式不能转换为float。

我曾经使用过float('100+20*50/10-9'),它会引发错误:

追溯(最近一次调用):ValueError:未能将字符串转换为浮动:‘100+20*50/10-9’中的第1行文件"“

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2018-04-16 10:55:04

如果要将计算字符串解析为值,则必须首先计算字符串。如下所示:

eval('100+20*50/10-9')

然后,您可以将其转换为类似于此float(eval('100+20*50/10-9'))的浮点数。

但是,如果计算字符串看起来像这个101+20*50/3,从而返回434,3333(3),那么您应该想出一个更好的解决方案,在进行计算之前将其中的值解析为浮点数。见不同之处:

代码语言:javascript
运行
复制
print float(eval('101+20*50/3'))            '434.0
print float(eval('101.0+20.0*50.0/3.0'))    '434.333333333
票数 3
EN

Stack Overflow用户

发布于 2018-04-16 11:15:26

还使用了另一种方法:

代码语言:javascript
运行
复制
s = '101+20*50/3'

print("{:.8f}".format(eval(s)))

#ouput:

434.00000000
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49855421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档