为什么整数除法返回浮点数?

时间:2017-06-21 16:45:38

标签: python

据我所知,整数除法//运算符保证返回一个整数。但是,在2 // 1 == 1时,我也会得到2.0 // 1 == 2.0。为什么python不生成整数,并且将输出转换为int是否总是安全的?

1 个答案:

答案 0 :(得分:5)

你误解了操作员。它是 floor division 运算符,而不是整数除法运算符。

对于浮点输入,它仍会返回一个浮动浮点值。

来自Binary arithmetic operations section

  

/(除法)和//(地板除法)运算符产生其参数的商。数字参数首先转换为通用类型。整数除法产生浮点数,而整数除法得到整数;结果是数学除法的结果,“floor”函数应用于结果。

地板的结果可以安全地转换为整数。