Recientemente he notado que int()
redondea un flotador hacia 0, mientras que la división entera redondea un flotador hacia su piso.
por ejemplo:
-7 // 2 = -4
int(-7/2) = -3
He leído la documentación que especifica:
clase int (x, base = 10)
Devuelve un objeto entero construido a partir de un número o cadena x, o devuelve 0 si no se dan argumentos>. Si x es un número, devuelve x. int (). Para números de coma flotante, esto se trunca hacia cero.
y:
división de piso
División matemática que redondea al entero más cercano. El operador de división de piso es //. Por ejemplo, la expresión 11 // 4 se evalúa como 2 en contraste con el 2,75 devuelto por la división verdadera flotante. Tenga en cuenta que (-11) // 4 es -3 porque es -2.75 redondeado hacia abajo. Ver PEP 238.
Pero me parece ilógico que 2 operaciones similares (división flotante a entero) deban devolver resultados diferentes.
¿Hay alguna motivación para las diferencias entre las funciones?
Gracias.