meisner7 2021-10-25 10:18 采纳率: 65.2%
浏览 65
已结题

python入门,请问怎么确定位数然后舍入

编写一个Division_round函数,它将一个分子、一个分母作为参数,一个四舍五入的布尔值rounded(默认为False)和一个十进制整数decimal(默认值为0)作为可选参数,并计算分子/分母分数的值(除非分母为零,在这种情况下,您的函数将显示错误消息并且不返回任何内容)。如果舍入布尔值等于False,函数将返回此结果而不舍入(如果在调用期间指定了小数,则将被忽略)。如果布尔值是True,结果将四舍五入到要求的小数位数(默认情况下,到最接近的整数)。要进行舍入,您将使用round (number_to_round, number_of_decimals)。

例子:
Division_arrondi (1,3) is 0.3333333333333333
Division_arrondi (1,3, rounded = True, decimal = 2) is 0.33
Division_arrondi (15,8) is 1.875
Division_arrondi (15,8, True) is 2
division_arrondi(15,8, arrondi=True, decimales=2) is 1.88

  • 写回答

2条回答 默认 最新

  • 辉煌仪奇 2021-10-25 10:23
    关注
    
    def Division_arrondi(x, y, rounded=False, decimal=0, **kwargs):
        """
    
        :param x:分子
        :param y: 分母
        :param rounded:True开启四舍五入,False关闭四舍五入,默认False
        :param decimal: 开始四舍五入后将要保留的位数 为0是返回一个整形数据
        :return: 返回计算结果
        """
        # 参数提取
        if kwargs.get('arrondi') and rounded == False:
            rounded = True
        if kwargs.get('decimals') and decimal == 0:
            decimal = kwargs.get('decimals')
    
        # 判断是否开启四舍五入
        if y!=0:
            if rounded:
                # 开启四舍五入
                # 保留位数为0,round做四舍五入后转换整形返回
                if decimal == 0:
                    return int(round(x / y, decimal))
                else:
                    # 保留位数>0,round直接做做四舍五入返回
                    return round(x / y, decimal)
            else:
                # 未开启四舍五入,直接计算返回
                return x / y
        else:
            return "分母不能为零"
    
    print('Division_arrondi (1,3) is', Division_arrondi(1, 3))
    print('Division_arrondi (1,3, rounded = True, decimal = 2) is', Division_arrondi(1, 3, rounded=True, decimal=2))
    print('Division_arrondi (15,8) is', Division_arrondi(15, 8))
    print('Division_arrondi (15,8) is', Division_arrondi(15, 0))
    print('Division_arrondi (15,8, True) is', Division_arrondi(15, 8, True))
    print('Division_arrondi(15,8, arrondi=True, decimales=2) is', Division_arrondi(15, 8, arrondi=True, decimales=2))
    print('Division_arrondi(15,0, arrondi=True, decimales=2) is', Division_arrondi(15, 0, arrondi=True, decimales=2))
    

    有帮助请采纳,有问题继续交流,你的采纳是对我回答的最大的肯定和动力

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 修改了问题 10月25日
  • 修改了问题 10月25日
  • 展开全部

悬赏问题

  • ¥50 求解vmware的网络模式问题
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?