海意朋友
如何将字符串表达式值转换为浮点值ex:s1 = '100+20*50/10-9'
此s1
转换为float
值。基于算术操作符的优先级规则,它应该给出191。但是,字符串表达式不能转换为float。
我曾经使用过float('100+20*50/10-9')
,它会引发错误:
追溯(最近一次调用):ValueError:未能将字符串转换为浮动:‘100+20*50/10-9’中的第1行文件"“
谢谢!
发布于 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)
,那么您应该想出一个更好的解决方案,在进行计算之前将其中的值解析为浮点数。见不同之处:
print float(eval('101+20*50/3')) '434.0
print float(eval('101.0+20.0*50.0/3.0')) '434.333333333
发布于 2018-04-16 11:15:26
还使用了另一种方法:
s = '101+20*50/3'
print("{:.8f}".format(eval(s)))
#ouput:
434.00000000
https://stackoverflow.com/questions/49855421
复制相似问题