首页 > 后端开发 > Python教程 > 为什么 Python 中的整数除法会截断而不是舍入?

为什么 Python 中的整数除法会截断而不是舍入?

Linda Hamilton
发布: 2024-12-19 19:07:10
原创
494 人浏览过

Why Does Integer Division in Python Truncate Instead of Rounding?

为什么除法舍入为整数

在 Python 中,整数之间的除法会得到一个整数。这种行为可能会令人惊讶,尤其是在尝试标准化或调整数值范围时。

为了说明这一点,让我们考虑以下代码:

(20-10) / (100-10) == 0
登录后复制

人们可能期望此表达式计算为表示 0.111 的浮点值,因为 20 和 10 之间的差是 10,而 100 和 10 之间的差是 90。但是,结果是 0因为除法两边都是整数。

这种行为是由于 Python 的整数除法造成的,它会截断结果而不是四舍五入。由于 0.111 小于 0.5,因此向下舍入为 0。

要获得预期结果,必须手动将除法的任一侧转换为浮点数:

(20-10) / float((100-10))  # == 0.111
登录后复制

或者,一个可以启用 Python 3.x 的行为,通过导入 future 强制除法返回浮点数模块:

from __future__ import division
(10 - 20) / (100 - 10)  # == -0.111
登录后复制

以上是为什么 Python 中的整数除法会截断而不是舍入?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板