[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