[pyar] En python los enteros no tienen límite, y los float?

Juanjo Conti jjconti en gmail.com
Lun Ago 16 12:12:30 ART 2010


Que Python tiene enteros sin límite se suele mostrar como una de sus
bondades, es cierto. Yo no se por qué mi cerebro había interpolado la idea
de que en float teníamos la misma ventaja.

Justo estaba leyendo al respecto para entender bien y me quedó claro que no.
Lo comparto:

Tenemos floats de 64 bits por lo que el número más grande sería 1.8 * 10  ^
308

Experimentos:

>>> 1.8 * 10 ** 308
inf
>>> (1.8 * 10 ** 308) -1
inf
>>> (1.8 * 10 ** 307)
1.8e+307
>>> int((1.8 * 10 ** 307))
17999999999999999998039114376456216347651344438232275733880796879022611222629344232968210029232637423335228391286240943875841566654515691501851462816306922211711719782044802861424980850817372976047137059473401493851505898263937732639975369729520303573215587786116778968240433833201813024899629905743039168512L
>>> int((1.8 * 10 ** 308))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: cannot convert float infinity to integer
>>> int((1.7777777777777 * 10 ** 308))
177777777777770007040405846130592234664920557071694319691365851518187966910859604479755917385045473289809941981579508755224839510325771131033490994634725314280979638745071802085813655515606111666253058503993251872741829528319017399682556349564465419509709379866758890788542539004674045300260038654370621947904L
>>> int((1.7777777777777 * 10 ** 308)) + 0.1
1.7777777777777001e+308
>>> int((1.7777777777777 * 10 ** 308)) *10
1777777777777700070404058461305922346649205570716943196913658515181879669108596044797559173850454732898099419815795087552248395103257711310334909946347253142809796387450718020858136555156061116662530585039932518727418295283190173996825563495644654195097093798667588907885425390046740453002600386543706219479040L
>>> int((1.7777777777777 * 10 ** 308)) *10 + 0.1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: long int too large to convert to float

-- 
Juanjo Conti
blog: http://www.juanjoconti.com.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100816/f4a8848a/attachment.html>


More information about the pyar mailing list