如何阻止Python将int转换为float[重复]

问题描述 投票:0回答:1

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

我尝试在使用 int() 函数声明变量后显式转换该变量,但一旦我除以它,它仍然会转换为浮点数

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

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

python floating-point type-conversion int
1个回答
3
投票

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

x = 5
int(x)

这对变量

x
没有影响,因为您创建了一个new(由于小整数([-5, 256])在CPython上实习,它将与内存中原始5相同的对象)
 int
通过执行
int(x)
来对象并扔掉它,因为它没有引用它的名称。原始
x
变量仍然引用整数对象
5

除以

5 / 2
,答案是 2.5,它是一个浮点数,如结果所示。

现在,如果您希望结果为

int
,您可以这样做:

  • 楼层划分

    x // 2
    math.floor(x / 2)
    也可以)

  • 使用

    round
    round(x / 2)

  • ceil 除法

    math.ceil(x / 2)
    (这将得到 3,因此得名 ceiling

© www.soinside.com 2019 - 2024. All rights reserved.