python 地板除法(floor)和截断除法(trunc)

    xiaoxiao2021-03-25  82

    math.floor() & math.trunc()

    math.floor 和 math.trunc的官方不同版本的介绍如下:

    math.floor: python2.7: Return the floor of x as a float, the largest integer value less than or equal to x. python3.5: Return the floor of x, the largest integer less than or equal to x. If x is not a float, delegates to x.__floor__(), which should return an Integral value. math.trunc: python2.7: Return the Real value x truncated to an Integral (usually a long integer). Uses the __trunc__ method. python3.5: Return the Real value x truncated to an Integral (usually an integer). Delegates to x.__trunc__(). math.ceil: python2.7: Return the ceiling of x as a float, the smallest integer value greater than or equal to x. python3.5: Return the ceiling of x, the smallest integer greater than or equal to x. If x is not a float, delegates to x.__ceil__(), which should return an Integral value.

    先上具体的例子:

    脚本中附加了math.ceil函数(和math.floor对立)

    root@pts/4 $ cat python_math_floor_and_trunc.py #!/usr/bin/env pyton #-*- codingL utf-8 -*- import math a = 3 b = 3.12 c = 3.67 print('-'*20+'a = 3; b = 3.12; c = 3.67'+'-'*20) print('-'*20+'math.ceil a b c'+'-'*20) print(math.ceil(a)) print(math.ceil(b)) print(math.ceil(c)) print('-'*20+'math.floor a b c'+'-'*20) print(math.floor(a)) print(math.floor(b)) print(math.floor(c)) print('-'*20+'math.trunc a b c'+'-'*20) print(math.trunc(a)) print(math.trunc(b)) print(math.trunc(c))

    在Python2.7下的运行结果是:

    root@pts/4 $ python python_math_floor_and_trunc.py --------------------a = 3; b = 3.12; c = 3.67-------------------- --------------------math.ceil a b c-------------------- 3.0 4.0 4.0 --------------------math.floor a b c-------------------- 3.0 3.0 3.0 --------------------math.trunc a b c-------------------- 3 3 3

    在Python3.5下的运行结果是:

    root@pts/5 $ python python_math_floor_and_trunc.py --------------------a = 3; b = 3.12; c = 3.67-------------------- --------------------math.ceil a b c-------------------- 3 4 4 --------------------math.floor a b c-------------------- 3 3 3 --------------------math.trunc a b c-------------------- 3 3 3 总结来说: math.trunc 不管是在Python2.7或者是Python3.5版本中最终的结果都是`截断`之后的`整数` math.ceil/math.floor 在Python2.7版本返回值是`浮点数`;在python3.5版本是`整数` math.ceil 是返回 大于或者等于当前值的`最小整数` math.floor 是返回 小于或者等于当前值的`最大整数`
    转载请注明原文地址: https://ju.6miu.com/read-22463.html

    最新回复(0)