Как ввести литерал бесконечности с плавающей точкой в python
Как ввести литерал бесконечности с плавающей точкой в python?
Я слышал
inf = float('inf')
не портативный. Таким образом, мне было рекомендовано следующее:
inf = 1e400
является ли один из них стандартным или портативным? Что такое лучшая практика?
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