我正在制作一个解决二次方程并打印根的程序。在我进入主程序之前,我只是想让平方根工作。我得到的错误是"数学域错误"。如果有人可以给我一些帮助,为什么它不起作用那将是伟大的。
import math
a = int(sys.argv[1])
b = int(sys.argv[2])
c = int(sys.argv[3])
x1 = int
x2 = int
# variables into solving equation and assign answers
print(math.sqrt((b**2)-(4*a*c)))
答案 0 :(得分:0)
众所周知,当您尝试使用负数时,sqrt
会出现错误。
结果可能是一个复数,并且如098799的评论中所述,“math.sqrt不会给你复杂的数字”。
而不是使用:
import math
print(math.sqrt((b**2)-(4*a*c)))
尝试使用:
import cmath
print(cmath.sqrt((b**2)-(4*a*c)))
它适用于cmath,因为它可以访问复数的数学函数。