【问题标题】:Convert String to Float (with calculation within the string)将字符串转换为浮点数(在字符串内进行计算)
【发布时间】:2020-01-12 14:47:23
【问题描述】:

我希望将字符串转换为浮点数,如果字符串包含计算(如 1/3),它应该计算它然后转换。

我尝试输入 float(y),而 y 是我的“+1/3”。

y = '+1/3'
float(y)

我希望输出类似于“0.3333”,但我不断收到错误消息“ValueError:无法将字符串转换为浮点数:'+1/3'”。

【问题讨论】:

  • 你能保证你的字符串中总是有/吗?
  • 计算能有多复杂?
  • 如果传递给它的参数是字符串,float 初始化程序不会计算表达式。你用的是什么版本的 Python?

标签: python string casting type-conversion


【解决方案1】:

假设您的字符串中将包含/,因此您可以使用以下代码:

numerator, denominator = '+1/3'.split('/')
y = float(numerator) / float(denominator)

【讨论】:

  • 如果运营商改变了怎么办?像 * + -
  • @vbrises,你能提供一个具体的意见吗?
【解决方案2】:

你试过 eval 吗?

eval("+1/3")

output

0.3333333333333333

【讨论】:

  • 使用 eval 不是一个好习惯,您可以阅读更多关于 here 的信息。
猜你喜欢
  • 2011-11-25
  • 2019-11-21
  • 1970-01-01
  • 2016-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多