El operador de división doble en Python devuelve el valor mínimo para argumentos enteros y de punto flotante después de la división.
# A Python program to demonstrate use of # "//" for both integers and floating points print(5//2) print(-5//2) print(5.0//2)
Producción:
2 -3 2.0
El operador de división simple se comporta de manera anormal generalmente para números muy grandes. Considere el siguiente ejemplo.
Ejemplos 1:
# single division print(1000000002/2) # Gives wrong output print(int(((10 ** 17) + 2)/2)) # Gives Correct output print(((10 ** 17) + 2)//2)
Producción:
500000001.0 50000000000000000 50000000000000001
Ejemplo 2:
x = 10000000000000000000006 if int(x / 2) == x // 2: print("Hello") else: print("World")
Producción:
World
La salida debería haber sido Hola si el operador de división simple se comportara normalmente porque 2 divide correctamente a x. Pero la salida es Mundial porque los resultados después del Operador de división simple y el Operador de división doble NO SON LOS MISMOS .
Este hecho se puede usar para programas como encontrar la suma de los primeros n números para un n grande.
n = 10000000000 s1 = int(n * (n + 1) / 2) s2 = n * (n + 1) // 2 print("Sum using single division operator : ", s1) print("Sum using double division operator : ", s2)
Producción:
Sum using single division operator : 50000000005000003584 Sum using double division operator : 50000000005000000000
Por lo tanto, el resultado encontrado al usar el operador de división simple es Incorrecto, mientras que el resultado encontrado al usar el operador de división doble es Correcto. Este es un gran beneficio del Operador de división doble sobre el Operador de división única en Python.
Publicación traducida automáticamente
Artículo escrito por thekushalghosh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA