为什么 Python 进行简单的除法计算会返回 0?
- 2025-02-25 09:07:00
- admin 原创
- 22
问题描述:
为什么这个简单的计算返回 0
>>> 25/100*50
0
而这实际上计算正确吗?
>>> .25*50
12.5
>>> 10/2*2
10
第一个例子有什么问题?
解决方案 1:
在 Python 2 中,25/100
执行整数除法时为零。因为结果小于1
。
您可以通过from __future__ import division
在脚本中添加内容来“修复”此问题。这将在使用运算符时始终执行浮点除法/
,并用于//
整数除法。
另一个选择是使至少一个操作数成为浮点数,例如25.0/100
。
在 Python 3 中,25/100
始终是0.25
。
解决方案 2:
这是一个整数截断问题(即数字的任何小数部分都会被丢弃)。所以:
25 / 100
给出0
但是,只要除法中的至少一个操作数是浮点数,就会得到浮点数结果:
25 / 100.0
或者25.0 / 100
全部25.0 / 100.0
给予0.25
解决方案 3:
25/100
是一个整数计算,通过截断四舍五入为0
。
解决方案 4:
我仅通过这个技巧就解决了这个问题。
(25 1.0) / 100 50
因此,(1.0)确保分子是浮点类型
解决方案 5:
如果结果小于 1,Python 2 将返回整数除法的零。
解决方案是将其中一个整数转换为浮点数,例如
float(25)/100*50
解决方案 6:
在 Python 2 中:25/100 默认为整数除法
在 Python 3 中:25/100 始终为 0.25。
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD