Как ввести литерал бесконечности с плавающей точкой в python



Как ввести литерал бесконечности с плавающей точкой в python?



Я слышал



 inf = float('inf')


не портативный. Таким образом, мне было рекомендовано следующее:



 inf = 1e400


является ли один из них стандартным или портативным? Что такое лучшая практика?

612   3  

3 ответов:

на python 2.6 Это портативный, если процессор поддерживает его

функция float () теперь повернет строка nan в IEEE 754 не A Числовое значение, и +inf и -inf в положительная или отрицательная бесконечность. Этот работает на любой платформе с IEEE 754 семантика.

float('inf') не является портативным, как в not portable back to Python 2.5, когда вывод строки варьируется между платформами. Начиная с 2.6 и далее float('inf') гарантированно работает на платформах IEEE-754-compliance (ref:http://www.python.org/dev/peps/pep-0754/).

(и рекомендация, кажется, находится в диапазоне 1e30000, а не только 1e400.)

возможно, вы могли бы сделать что-то подобное

try:
    inf = float('inf')
except:  # check for a particular exception here?
    inf = 1e30000

Comments

    Ничего не найдено.