第5讲课后习题:使用int()转换变量类型的疑惑
2. 使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?我们可爱的小甲鱼说了,小数取整会采用比较暴力的截断方式,即向下取整。(注:5.5 向上取整为 6,向下取整为 5)
但那是对于正数来说……对于负数则刚好相反 —— 是向上取整。
但我测试以后发现:
>>> a = 5.5
>>> b = int(a)
>>> b
5
>>> a = -5.5
>>> b = int(a)
>>> b
-5 # 按上面的答案解释,返回结果不是应该为-6才对吗? 实际上,Python中使用int()函数将浮点数转换为整数时,结果是根据浮点数的值向0舍入得到的。也就是说,它会向下取整到最接近的整数(即截取整数部分),而不是根据正负号向上或向下取整。
对于正数,这就是向下取整;而对于负数,它实际上是向上取整。因此,当你使用int()将-5.5转换为整数时,你得到的结果是-5,这是一个向上取整的结果。
请注意,Python中有一个另外的函数math.floor(),它会将一个浮点数向下取整到最接近的整数。而math.ceil()函数则会将一个浮点数向上取整到最接近的整数。
有用请设置最佳答案 向上取整指取最小的比自己更大的整数。-5.5 < -5 ,符合向上取整的要求。只需要记住 int 是砍掉小数点及其后面的部分就可以了。 tommyyu 发表于 2023-3-10 17:34
向上取整指取最小的比自己更大的整数。-5.5 < -5 ,符合向上取整的要求。只需要记住 int 是砍掉小数点及其 ...
通俗易懂,正解,大佬{:10_254:}
页:
[1]