最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • python如何实现向上取整

    数据处理是编程中不可避免的,很多时候都需要根据需求把获取到的数据进行处理,取整则是最基本的数据处理。

    取整的方式则包括向下取整、四舍五入、向上取整等等。

    1、向下取整

    向下取整直接用内建的 int() 函数即可:

    >>> a = 3.75
    >>> int(a)
    3
    

    2、四舍五入

    对数字进行四舍五入用 round() 函数:

    >>> round(3.25); round(4.85)
    3.0
    5.0
    

    3、向上取整

    向上取整需要用到 math 模块中的 ceil() 方法:

    >>> import math
    >>> math.ceil(3.25)
    4.0
    >>> math.ceil(3.75)
    4.0
    >>> math.ceil(4.85)
    5.0
    

    4、分别取整数部分和小数部分

    有时候我们可能需要分别获取整数部分和小数部分,这时可以用 math 模块中的 modf() 方法,该方法返回一个包含小数部分和整数部分的元组:

    >>> import math
    >>> math.modf(3.25)
    (0.25, 3.0)
    >>> math.modf(3.75)
    (0.75, 3.0)
    >>> math.modf(4.2)
    (0.20000000000000018, 4.0)
    

    有人可能会对最后一个输出结果感到诧异,按理说它应该返回 (0.2, 4.0) 才对。

    这里涉及到了另一个问题,即浮点数在计算机中的表示,在计算机中是无法精确的表示小数的,至少目前的计算机做不到这一点。

    上例中最后的输出结果只是 0.2 在计算中的近似表示。

    python中的取整问题

    虽然取整是各种语言中最基础的操作, 可是往往多了一个1或者少了一个1会导致巨大的灾难,所以我觉得还是很有必要写一下的。

    python中的取整操作有://, round, int, ceil, floor, 其他语言也有类似的函数来进行取整。

    先看一段代码

    import math
    
    def test_round(a, b):
        print('-------------------------------------')
        print(f'{a}/{b}=', a/b)
        print(f'{a}//{b}=', a//b)
        print(f'round({a}/{b})=', round(a/b))
        print(f'int({a}/{b})=', int(a/b))
        print(f'ceil({a}/{b})=', math.ceil(a/b))
        print(f'floor({a}/{b})=', math.floor(a/b))
    
    test_round(3, 2)
    test_round(-3, 2)

    打印结果:

    -------------------------------------
    3/2= 1.5
    3//2= 1
    round(3/2)= 2
    int(3/2)= 1
    ceil(3/2)= 2
    floor(3/2)= 1
    -------------------------------------
    -3/2= -1.5
    -3//2= -2
    round(-3/2)= -2
    int(-3/2)= -1
    ceil(-3/2)= -1
    floor(-3/2)= -2

    可以看出, //操作结果和floor是一样的。

    总的来说, ceil:坐标轴上向上取整, floor:向下取整, int:向中(0)取整(直接去掉浮点位)。

    而round则是四舍五入(不考虑符号)

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持VIP共享吧。

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » python如何实现向上取整
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情