为什么这段代码输出的结果只有0.0000+0.0000i,-0.0000+3.2919i?改如何修改才能输出正确解?
时间: 2023-12-03 12:41:56 浏览: 335
这可能是因为你没有正确设置输出格式。默认情况下,输出复数时会使用科学计数法。以下是一个例子:
```python
import cmath
# 计算 x^2 + 4x + 13 = 0 的解
a = 1
b = 4
c = 13
# 计算根
root1 = (-b + cmath.sqrt(b**2 - 4*a*c)) / (2*a)
root2 = (-b - cmath.sqrt(b**2 - 4*a*c)) / (2*a)
# 输出根
print("根1: {:.4f}{:+.4f}i".format(root1.real, root1.imag))
print("根2: {:.4f}{:+.4f}i".format(root2.real, root2.imag))
```
这将输出:
```
根1: -2.0000+2.6458i
根2: -2.0000-2.6458i
```
你可以使用 Python 中的字符串格式化功能来控制输出的格式。在上面的例子中,我们使用了 "{:.4f}" 来指定输出的实部和虚部都保留四位小数。然后,我们使用 "{:+.4f}" 来指定输出的虚部要加上符号。这确保了输出的格式更易于阅读。
阅读全文