• 技术文章 >常见问题 >Python常见问题

    python中如何取整数

    (*-*)浩(*-*)浩2019-08-27 11:08:12原创39936
    首先,不得不提醒大家一个容易被忽视或者搞混的问题——一般的,0.5这种末尾是5的小数,四舍五入取整应进位。这个进位的意思是:-0.5 → -1;0.5 → 1.即正负情况不同,都向着远离0,使得绝对值更大的方向进位

    向上取整:math.ceil()

    import math
    math.ceil(-0.5)
    >>> 0
    math.ceil(-0.9)
    >>> 0
    math.ceil(0.3)
    >>> 1

    如code所见,math.ceil()严格遵循向上取整,所有小数都是向着数值更大的方向取整,不论正负数都如此

    四舍五入:round()

    round(-2.5)
    >>> -2
    round(-1.5)
    >>> -2
    round(-0.5)
    >>> 0
    round(0.5)
    >>> 1
    round(1.5)
    >>> 2
    round(2.5)
    >>> 2

    如code所示,round()当不传入第二个参数时默认取整,具体就是按照四舍五入来。但值得一提的是这里对小数末尾为5的处理方法:当末尾的5的前一位为奇数:向绝对值更大的方向取整(比如-1.5、1.5处理结果);当末尾的5的前一位为偶数:去尾取整(比如-2.5,-0.5,0.5和2.5的处理结果)。

    向下取整:math.floor()

    math.floor(-0.3)
    >>> -1
     
    math.floor(0.9)
    >>> 0

    简单且忠实地向下取整,不再讨论

    两个有趣且特殊的Python取整:int()、整除"//"

    int()

    int(-0.5)
    >>> 0 
    int(-0.9)
    >>> 0
    int(0.5)
    >>> 0
    int(0.9)
    >>> 0

    一句话总结:int()函数是“向0取整”,取整方向总是让结果比小数的绝对值更小

    "//"

    (-1) // 2  # -0.5
    >>> -1
    (-3) // 2  # -1.5
    >>> -2
    1 // 2    # 0.5 
    >>> 0
    3 // 2    # 1.5
    >>> 1

    一句话总结:“整除”符号运算将结果忠实地向下取整,与math.floor()处理结果一样

    总结一下:

    向上取整:math.ceil()

    向下取整:math.floor()、整除"//"

    四舍五入:round()——奇数向远离0取整,偶数去尾取整;或言之:奇数进位,偶数去尾

    向0取整:int()

    专题推荐:python
    上一篇:python怎么判断数据类型 下一篇:Python判断一个字符串是否包含另一个字符串

    相关文章推荐

    • python文档怎么看• python函数如何不返回none• python模块放在哪

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网