社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python3除法之真除法、截断除法和下取整对比

若数 • 6 年前 • 522 次点击  
阅读 23

Python3除法之真除法、截断除法和下取整对比

概述

在Python3中,数学运算中的除法被分为两种,分别是“真除法”,即无论任何类型相除的结果都会保留小数点,和我们实际的数学运算结果一致,而“截断除法”,则是无论任何类型相除的结果都会省略结果的小数部分,剩下最小的能整除的整数部分。 以下是两种除法的基本形式:

# 真除法
X / Y
# 截断除法
X // Y
复制代码

真除法

X = 8
Y = 2
Z = 3

print(X / Y)
print(X / Z)
复制代码

示例结果:

4.0
2.6666666666666665
复制代码

真除法的结果表明不论操作数的类型其相除结果都返回一个浮点结果。

截断除法

X = 8
Y = 2
Z = 3
S = -8

print(X // Y)
print(X // Z)
print(S // Y)
print(S // Z)
复制代码

示例结果:

4
2
-4
-3
复制代码

从示例中我们可以看到,截断除法并不是真的直接去掉小数点后面的数字,而是类似模块math中的floor方法,即向下取整,且负值的取整方式也是这样的。

import math

math.floor(2.0)
math.floor(2.6666666666666665)
math.floor(-2.0)
math.floor(-2.6666666666666665)
复制代码

示例结果:

2
2
-2
-3
复制代码

同样的模块math中的ceil方法可以实现浮点数的上取整。

import math

print(math.ceil(2.0))
print(math.ceil(2.6666666666666665))
print(math.ceil(-2.0))
print(math.ceil(-2.6666666666666665))
复制代码
2
3
-2
-2
复制代码
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/33443
 
522 次点击