5
¿Hay alguna forma de comprobar si un entero largo es demasiado grande para convertirlo en un float en python?Comprueba si python int es demasiado grande para convertirlo en float
¿Hay alguna forma de comprobar si un entero largo es demasiado grande para convertirlo en un float en python?Comprueba si python int es demasiado grande para convertirlo en float
>>> import sys
>>> sys.float_info.max
1.7976931348623157e+308
En realidad, si intenta convertir un número entero demasiado grande para un flotador, se generará una excepción.
>>> float(2 * 10**308)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: Python int too large to convert to C double
Para pedantes: si te importan los casos extremos, entonces el segundo método ("pruébalo y mira") es un poco más confiable. Sin embargo, hay enteros más grandes que sys.float_info.max (solo en una pequeña cantidad) que pueden convertirse de forma segura en flotación. En una máquina típica, 'int (sys.float_info.max)' es '2 ** 1024 - 2 ** 971', pero los enteros de hasta e incluyendo' 2 ** 1024 - 2 ** 970 - 1' se pueden convertir sin levantar 'OverflowError'. –