您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中使用整数除法

在Python中使用整数除法

Python2.7自动使用/运算符作为整数(整数)除法,该运算符将始终产生整数。

1/2 = 0

3/4 = 0

100/30 = 3

要进行浮点除法,必须将一个或两个值都作为浮点类型。

像这样:

Area = 1.0/2 * Base * Height # 1.0 is a float type, 1 is an integer type

结果不是您所期望的,因为Python使用整数除法和运算顺序来评估表达式。

如果您16 * 12 / 2使用Python进行评估,Python会将其解释为(16 * 12) / 2192 / 2 = 96

如果进行评估1/2 * 16 * 12,Python会将其解释为(((1/2) * 16) * 12)=(0 * 16) * 12

Area = Base * Height * (1.0/2.0)

蟒求值(1.0 / 2.0) 此时,由于操作使然为了使括号首先评估。由于1.0和2.0是浮点数而不是整数,因此Python可以执行浮点除法。你得到这个:

Base * Height * (0.5)
= 192 * 0.5
= 96

,它给您您所期望的。

相反:

Base * Height * (1/2)
= Base * Height * (0) # since 1/2 rounds down to 0 in integer division
= 192 * 0
= 0

from __future__ import division

该行将为您提供Python2.x程序中的python3.x行为/,即使两个值都是整数类型,python3.x也将运算符接受为浮点除法。这样,在您导入后,/就成为浮点除法运算符。

>>> from __future__ import division
>>> 1/2
0.5
python 2022/1/1 18:25:17 有443人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶