Python 3.x 如何转换字符串';100+;20*50/10-9';使用python浮动值
海伊朋友 如何将字符串表达式值转换为浮点值 例如:Python 3.x 如何转换字符串';100+;20*50/10-9';使用python浮动值,python-3.x,python-2.7,floating,arithmetic-expressions,Python 3.x,Python 2.7,Floating,Arithmetic Expressions,海伊朋友 如何将字符串表达式值转换为浮点值 例如:s1='100+20*50/10-9'此s1转换为float值。基于算术运算符优先级规则,它应该给出191。但是字符串表达式不能转换为float 我使用了float('100+20*50/10-9'),它会引发错误: 回溯(最近一次调用):文件“”,第1行,在 ValueError:无法将字符串转换为浮点:“100+20*50/10-9”` 谢谢 如果试图将计算字符串解析为值,则必须首先计算该字符串。像这样: eval('100+20*50/10
s1='100+20*50/10-9'
此s1
转换为float
值。基于算术运算符优先级规则,它应该给出191。但是字符串表达式不能转换为float
我使用了float('100+20*50/10-9')
,它会引发错误:
回溯(最近一次调用):文件“”,第1行,在
ValueError:无法将字符串转换为浮点:“100+20*50/10-9”`
谢谢 如果试图将计算字符串解析为值,则必须首先计算该字符串。像这样:
eval('100+20*50/10-9')
然后您可以将其转换为如下所示的浮点值浮点值(eval('100+20*50/10-9'))
但是,如果计算字符串看起来像这样,从而返回
4343333(3)
,那么您应该考虑更好的解决方案,在进行计算之前将其中的值解析为浮点值。请看区别:
也可以使用另一种方法:
s = '101+20*50/3'
print("{:.8f}".format(eval(s)))
#ouput:
434.00000000
可能重复的
s = '101+20*50/3'
print("{:.8f}".format(eval(s)))
#ouput:
434.00000000