[pyar] En python los enteros no tienen límite, y los float?
Facundo Batista
facundobatista en gmail.com
Mar Ago 17 13:27:49 ART 2010
2010/8/17 Claudio Freire <klaussfreire en gmail.com>:
> Ojo que decimal, aunque muy guachiguau, es... "decimal".
Y... sí.
> Float es base2, decimal base10. No es pequeña diferencia a veces. Ni en
> performance, ni en temas de precisión aritmética.
Sí, las diferencias corren por varios lados:
- Performance: hoy por hoy Decimal es Python, y float es silicio. Imbatible.
- Precisión: en float es fija, en Decimal es variable, como decía arriba:
Por otro lado, *ambos* son punto flotantes, y *ambos* sufren errores
de representación.
> Ej: pasar de float a decimal a float, por esto de la base, no es
> "idempotente":
Mirá, mirá:
>>> import decimal
>>> tercio = decimal.Decimal(1) / 3
>>> tercio
Decimal('0.3333333333333333333333333333')
>>> ftercio = float(tercio)
>>> ftercio
0.3333333333333333
>>> dtercio = decimal.Decimal.from_float(ftercio)
>>> dtercio
Decimal('0.333333333333333314829616256247390992939472198486328125')
>>> float(dtercio)
0.3333333333333333
(En Python 2.7 o 3.1)
Slds.
--
. Facundo
Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
More information about the pyar
mailing list