为什么我在Python中一直得到一个ValueError: math domain错误?[重复]

问题描述 投票:-3回答:1

所以我用Python做了一个四边形方程求解器,在计算的时候,出现了一个错误,我不知道是怎么回事。

from math import sqrt

a = float(input("a: "))
b = float(input("b: "))
c = float(input("c: "))
Z = (b * b) - (4 * a * c)

x1 = ((-b) + float(sqrt(Z))) / (2 * a)
x2 = ((-b) - float(sqrt(Z))) / (2 * a)

print("x = " + str(x1))
print("x = " + str(x2))

这是代码。

python math quadratic
1个回答
0
投票

这可能是因为如果 (4 * a * c) > (b * b)Z变成了负数,而负数的平方根会导致一个虚数。math.sqrt() 不取负参数.编辑:正如@jakub所说的那样,你可以尝试获取绝对值的平方根。

© www.soinside.com 2019 - 2024. All rights reserved.