python - 如何阻止python将int转换为float
问题描述
我有一个整数变量,一旦我将它除以它就会转换为浮点数。我需要阻止这种情况发生
在使用 int() 函数声明变量后,我尝试显式转换变量,但它仍然在我划分后立即转换为浮点数
x = 5
int(x)
x = x/2
type(x)
我期望 x/2 的输出,因为它是一个整数,但输出是 2.5,当我通过 type() 函数运行它时,它返回一个浮点数
解决方案
Python 中没有类型转换,只有类型转换。
x = 5
int(x)
这对变量没有影响,x
因为您在 CPython 上创建了一个新的(由于小整数 ([-5, 256]) 实习,它与内存中的原始 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)
这会让你得到 2 因此名称为上限)
推荐阅读
- android - 如何在 Android 平台(armv7 和 arm64)上使用(编译)Tesseract 4
- google-apps-script - 如何限制发送相同文本的多个表单?
- json - 该对象的 Typescript 接口是否正确?
- opencv - TypeError:integer argument expected int got float in opencv circle
- .net - 使用 VB.NET 上传 AWS S3 文件
- python - 语法错误:Codeskulptor 中的错误标记“”
- lua - 释放 LMB 时如何将 MoveMouseRelative 反转到确切的第一个位置
- python - 将数据框列中的日期转换为新列
- timer - DPMS 待机定时器倒计时
- rust - 如何为 serde 编写自定义 rename_all 属性?