[pyar] En python los enteros no tienen límite, y los float?
Facundo Batista
facundobatista en gmail.com
Lun Ago 16 13:57:38 ART 2010
2010/8/16 Juanjo Conti <jjconti en gmail.com>:
>
> Tenemos floats de 64 bits por lo que el número más grande sería 1.8 * 10 ^
> 308
Pero tenemos Decimal! :)
Tiene (entre muchas otras que no aplican a este post) dos ventajas:
- El exponente es un "python int", así que no tiene límites:
>>> decimal.Decimal("1.8e308")
Decimal('1.8E+308')
>>> int(decimal.Decimal("1.8e308"))
180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L
(y fijate que el número real es el que escribiste, no la aproximación
binaria que tenías en el otro caso)
- La precisión es controlable:
>>> 2 ** decimal.Decimal('.5') # raiz cuadrada de 2
Decimal('1.414213562373095048801688724')
>>> decimal.getcontext().prec = 80
>>> 2 ** decimal.Decimal('.5')
Decimal('1.4142135623730950488016887242096980785696718753769480731766797379907324784621070')
Slds.
--
. Facundo
Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
More information about the pyar
mailing list