0

我需要解决一些数学方程,如下所示(但每次都有不同的公式):

formula="(2/10^8*x^2)+0.0131*x-1017.3-30"

其中x是一个整数。

我使用 eval() 函数来解决这个问题。函数给了我一个例外:

TypeError: unsupported operand type(s) for ^: 'float' and 'int'

我是这样解决的:

formula=formula.replace('^','**') 

现在,我遇到了另一个问题。

eval("2/10") 

返回0而不是我需要0.2,因此我得到了错误的结果。我很感激任何答案。

4

1 回答 1

3

好吧,在 Python 2.x 中int / int 总是返回一个integer. 使用 Python 3 或将其中一个参数显式写入浮点数,例如2.0 / 10,或者(正如 Marjin Pieters 提醒我们的那样),将显式的类似 Py3 的除法行为导入为:from __future__ import division

于 2013-04-30T11:59:49.520 回答