开发者社区> 老鹰506> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 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.
+关注继续查看

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 是返回 小于或者等于当前值的`最大整数`

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python浮点数转整数int、round、ceil、floor
Python浮点数转整数int、round、ceil、floor
0 0
Python - 基本数据处理函数 round()、int()、floor()、ceil()
Python - 基本数据处理函数 round()、int()、floor()、ceil()
0 0
深度之眼(十三)——Python:类-面向对象的编程(下)
深度之眼(十三)——Python:类-面向对象的编程(下)
0 0
深度之眼(十三)——Python:类-面向对象的编程(上)
深度之眼(十三)——Python:类-面向对象的编程(上)
0 0
深度之眼(九)——python函数--面向过程的编程(下)
深度之眼(九)——python函数--面向过程的编程(下)
0 0
深度之眼(九)——python函数--面向过程的编程(上)
深度之眼(九)——python函数--面向过程的编程(上)
0 0
Python编程:MySQLdb模块对数据库的基本增删改查操作
Python编程:MySQLdb模块对数据库的基本增删改查操作
0 0
Python编程:entry_points将Python模块转变为命令行工具
Python编程:entry_points将Python模块转变为命令行工具
0 0
Python编程:SQLAlchemy查询数据没有变化
遇到一个问题,使用一条相同的sql,多次查询数据库,每次数据都一样,而且数据库更新了,也没有查到新数据 经过Google,发现是SQLAlchemy的缓存机制导致的 设置隔离级别参数isolation_level 就可以解决
0 0
Python编程:运行目录或zip压缩文件
Python编程:运行目录或zip压缩文件
0 0
+关注
老鹰506
架构,编程语言相关技术专家
文章
问答
文章排行榜
最热
最新
相关电子书
更多
给运维工程师的Python实战课
立即下载
Python 脚本速查手册
立即下载
ACE 区域技术发展峰会:Flink Python Table API入门及实践
立即下载