Comment taper un littéral infini à virgule flottante en python?
J'ai entendu
inf = float('inf')
n'est pas portable. Ainsi, j'ai eu les recommandations suivantes:
inf = 1e400
Est-ce l'un de ces standards ou portable? Quelle est la meilleure pratique?
En python 2.6 il est portable si le CPU le supporte
La fonction float () transformera maintenant la chaîne nan en une valeur IEEE 754 Not A Number, et + inf et -inf en infini positif ou négatif. Cela fonctionne sur n'importe quelle plate-forme avec la sémantique IEEE 754.
float('inf')
n'est pas portable comme dans pas portable retour à Python 2.5 lorsque la sortie de chaîne varie selon les plates-formes. À partir de 2.6 et au-delà float('inf')
est garanti pour fonctionner sur les plateformes de conformité IEEE-754 (réf: http://www.python.org/dev/peps/pep-0754/ ).
(Et la recommandation semble être de l'ordre de 1e30000, pas seulement 1e400.)
Vous pourriez peut-être faire quelque chose comme ça
try:
inf = float('inf')
except: # check for a particular exception here?
inf = 1e30000