张牙五爪 2023-01-26 22:45 采纳率: 100%
浏览 47
已结题

用Python计算一元二次方程的根,但我的结果跟预期结果不一样

def equation(a, b, c):
    m = b * b - 4 * a * c
    import math
    if m >= 0:
        x1 = (-b + math.sqrt(m)) / (2 * a)
        x2 = (-b - math.sqrt(m)) / (2 * a)
        return x1, x2
    else:
        return ("无解")


a, b, c = map(float, input().split())
print(equation(a, b, c))

这该怎么改,我的结果多了括号,并且只有一位小数
主要是函数类型和最后两行输出那一块是pta上给的不能改,我就不会在用float函数去修改结果有几位小数了

  • 写回答

5条回答 默认 最新

  • lidiyscrp 2023-01-26 23:07
    关注

    您可以在代码中使用round()函数,来将计算结果四舍五入到指定位数。如果您想要保留一位小数,可以使用round(x, 1),其中x是您要四舍五入的数字。您可以将round()函数用于计算出的 x1 和x2 的值,来去除多余的括号。
    具体的代码

    def equation(a, b, c):
        # 计算判别式
        m = b * b - 4 * a * c
        import math
        if m >= 0:
            # 当判别式大于0时,说明方程有两个解
            x1 = (-b + math.sqrt(m)) / (2 * a)
            x2 = (-b - math.sqrt(m)) / (2 * a)
            return round(x1, 1), round(x2, 1)
        else:
            # 当判别式小于0时,说明方程无解
            return ("无解")
    
    # 输入a,b,c的值
    a, b, c = map(float, input().split())
    # 输出计算结果
    print(equation(a, b, c))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 2月6日
  • 已采纳回答 1月29日
  • 修改了问题 1月29日
  • 创建了问题 1月26日

悬赏问题

  • ¥30 seata使用出现报错,其他服务找不到seata
  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
  • ¥15 Google speech command 数据集获取
  • ¥15 vue3+element-plus页面崩溃
  • ¥15 像这种代码要怎么跑起来?
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误