Te damos la bienvenida a nuestro sitio, en este sitio encontrarás la solucíon de lo que buscabas.
Solución:
en python 3.x cualquier división devuelve un flotante;
>>> 1/2
0.5
para lograr eso en python 2.x, debe forzar la conversión flotante:
>>> 1.0/2
0.5
o importar la división del “futuro”
>>> from __future__ import division
>>> 1/2
0.5
Un extra: no hay un tipo de fracción incorporado, pero hay en la biblioteca oficial:
>>> from fractions import Fraction
>>> a = Fraction(1, 2) #or Fraction('1/2')
>>> a
Fraction(1, 2)
>>> print a
1/2
>>> float(a)
0.5
y así…
Probablemente esté usando Python 2. Puede “arreglar” la división usando:
from __future__ import division
al comienzo de su secuencia de comandos (antes de cualquier otra importación). Por defecto en Python 2, el /
El operador realiza la división de enteros cuando se utilizan operandos de enteros, lo que descarta partes fraccionarias del resultado.
Esto se ha cambiado en Python 3 para que /
es siempre una división de punto flotante. El nuevo //
El operador realiza la división de enteros.
Alternativamente, puede forzar la división de punto flotante especificando un decimal o multiplicando por 1.0. Por ejemplo (desde dentro del intérprete de python):
>>> print 1/2
0
>>> print 1./2
0.5
>>> x = 1/2
>>> print x
0
>>> x = 1./2
>>> print x
0.5
>>> x = 1.0 * 1/2
>>> print x
0.5
EDITAR: Parece que me dieron una paliza en el tiempo que tardé en escribir mi respuesta 🙂
Si te animas, puedes dejar una crónica acerca de qué te ha gustado de esta crónica.