首页 > 解决方案 > 如何阻止python将int转换为float

问题描述

我有一个整数变量,一旦我将它除以它就会转换为浮点数。我需要阻止这种情况发生

在使用 int() 函数声明变量后,我尝试显式转换变量,但它仍然在我划分后立即转换为浮点数

x = 5
int(x)
x = x/2
type(x)

我期望 x/2 的输出,因为它是一个整数,但输出是 2.5,当我通过 type() 函数运行它时,它返回一个浮点数

标签: pythonfloating-pointtype-conversionint

解决方案


Python 中没有类型转换,只有类型转换。

x = 5
int(x)

这对变量没有影响,x因为您在 CPython 上创建了一个的(由于小整数 ([-5, 256]) 实习,它与内存中的原始 5 对象是同一个对象)intint(x)扔掉它因为它没有名字指称它。原来的x变量仍然引用整数对象5

当你除以5 / 22.5 时,它是一个浮点数,如结果所示。

现在,如果您希望结果为int,您可以执行以下操作:

  • 楼层划分:(也可以x // 2math.floor(x / 2)

  • 使用roundround(x / 2)

  • ceil 师:(math.ceil(x / 2)这会让你得到 2 因此名称为上限


推荐阅读