Python 为什么int(0.9)四舍五入为0?

Python 为什么int(0.9)四舍五入为0?,python,rounding,Python,Rounding,我注意到当我输入int(0.9)时,它变成了0而不是1 我只是想知道为什么Python不会对数字进行四舍五入。如果使用int函数,它会忽略小数点并给出整数部分。因此,如果要对数字进行四舍五入,请使用round函数。如果使用int函数,它会忽略小数点并给出整数部分。因此,如果要对数字进行四舍五入,请使用round函数。int不会以您期望的方式执行四舍五入,它将四舍五入为0,round函数将四舍五入到您提供的最接近的整数或位置 >>> int(0.9) 0 >>>

我注意到当我输入
int(0.9)
时,它变成了0而不是1


我只是想知道为什么Python不会对数字进行四舍五入。

如果使用
int
函数,它会忽略小数点并给出整数部分。因此,如果要对数字进行四舍五入,请使用
round
函数。

如果使用
int
函数,它会忽略小数点并给出整数部分。因此,如果要对数字进行四舍五入,请使用
round
函数。

int
不会以您期望的方式执行四舍五入,它将四舍五入为0,
round
函数将四舍五入到您提供的最接近的整数或位置

>>> int(0.9)
0
>>> int(-0.9)
0
>>> round(12.57)
13
>>> round(12.57, 1)
12.6

int
不会以您期望的方式执行舍入,它将舍入为0,
round
函数将舍入到您提供的最接近的整数或位数

>>> int(0.9)
0
>>> int(-0.9)
0
>>> round(12.57)
13
>>> round(12.57, 1)
12.6
如果x是浮点,则转换将向零截断

来源:

如果x是浮点,则转换将向零截断

来源:。

简单:因为int()用作“地板”,所以它只是切割而不是进行舍入。或作为“ceil”表示负值

您希望改用round()函数

Simple:因为int()用作“地板”,所以它只是进行切割而不是进行舍入。或作为“ceil”表示负值


您希望改用round()函数

它只取数字的整数值。我猜这是因为它的计算比四舍五入更简单,而且在我看来也不那么模棱两可。它的行为就是只取数字的整数值。我猜这是因为它的计算比四舍五入简单,而且在我看来也不那么模棱两可。如果四舍五入到0,那么将是一个
floor()
而不是
ceil()
@NickA:对于正输入,它的行为类似于
floor
,对于负输入,它的行为类似于
ceil
。谢谢。而且是固定的。这是为数不多的几次我的英语知识经常崩溃的情况之一。不知道为什么…四舍五入到0将是一个
floor()
而不是
ceil()
@NickA:对于正输入,它的行为类似于
floor
,对于负输入,它的行为类似于
ceil
。谢谢。而且是固定的。这是为数不多的几次我的英语知识经常崩溃的情况之一。不知道为什么…谢谢,我不知道
round
功能谢谢,我不知道
round
功能