[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