张牙五爪 2023-01-26 14: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 15: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月5日
  • 已采纳回答 1月29日
  • 修改了问题 1月29日
  • 创建了问题 1月26日

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部