Float() y Compilador

Hernan Martínez Foffani hernan en orgmf.com.ar
Sab Nov 20 19:55:29 CET 2004


> Gracias Hernan, pero el problema es un poco complejo, lo q me pasa es
>  lo siguiente; L=(xint-x[i])/(x[i]-x[j])
> Si el numerador y denominador son enteros, lo q me un Entero en la
> division, aunque francamente deberia darme un real. ese el problema.
> Ejm L=(4-3)/(3-1)
>
> Me da 0. y deberia darme 0.5, ese es mi problema.

Eso si fuera una division flotante pero entre enteros es una
division entera.
Como te decía en el mail anterior alcanza con cambiarle el
tipo a cualquiera de los operandos.  Por ejemplo, el 1 :

  >>> (4-3)/(3-1.0)
  0.5
  >>>

en tu caso no tienes que pasar a float a *todos* solo te basta con
uno.  Elije el que quieras, por ejemplo el numerador:

  >>> float(4-3) / (3-1)
  0.5
  >>>

Si no quieres forzar las conversiones puedes "decirle" a python
que la division no es la entera:

  >>> import operator
  >>> operator.truediv((4-3), (3-1))
  0.5
  >>>

-H.




Más información sobre la lista de distribución Python-es