求一元二次方程ax2+bx+c=0的根,结果保留2位小数。(注意:0.00会在gcc下被输出为-0.00,需要做特殊处理,输出正确的0.00。)
时间: 2024-11-13 08:27:34 浏览: 27
求解一元二次方程 \( ax^2 + bx + c = 0 \) 的根通常涉及到使用求根公式 \( x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \)。在计算过程中,需要注意浮点运算可能会导致精度损失,特别是当判别式 \( b^2 - 4ac \) 很接近零时。为了避免输出的“-0.00”形式,你需要在计算结果后检查其是否小于某个极小正数(比如 \( 10^{-6} \)),如果是,则将其设置为零。
以下是一个简单的Python示例,用于计算并格式化结果:
```python
import math
def quadratic_solver(a, b, c):
# 计算判别式
discriminant = b ** 2 - 4 * a * c
# 防止浮点误差带来的-0.00结果
if abs(discriminant) < 1e-6:
root1 = 0.00
root2 = 0.00
else:
root1 = (-b + math.sqrt(discriminant)) / (2 * a)
root2 = (-b - math.sqrt(discriminant)) / (2 * a)
return round(root1, 2), round(root2, 2)
# 使用示例
a = 1
b = 2
c = 1
solution = quadratic_solver(a, b, c)
print(f"Roots are {solution[0]} and {solution[1]}")
```
在这个例子中,`quadratic_solver`函数会返回两个根,并使用`round`函数将它们精确到两位小数。
阅读全文