Как я ввожу литерал бесконечности с плавающей точкой в Python?
Я услышал
inf = float('inf')
не является портативным. Таким образом у меня было рекомендуемое следующее:
inf = 1e400
Действительно ли или их является стандартным, или портативным? Что такое лучшая практика?
В python 2.6 это переносимо, если процессор поддерживает это
Функция float() теперь будет превращать строку nan в значение IEEE 754 Not A число, а +inf и -inf в положительную или отрицательную бесконечность. Этот работает на любой платформе с IEEE 754 семантикой.
Возможно, вы могли бы сделать что-то подобное
try:
inf = float('inf')
except: # check for a particular exception here?
inf = 1e30000
float ('inf')
не переносится, как и не переносится обратно в Python 2.5, когда вывод строки различается между платформами. Начиная с версии 2.6 float ('inf')
гарантированно работает на платформах, совместимых с IEEE-754 (ref: http://www.python.org/dev/peps/pep-0754 / ).
(И рекомендация, похоже, находится в диапазоне 1e30000, а не только 1e400.)