it-swarm.com.de

Wie schreibe ich ein Gleitkomma-Unendlich-Literal in python

Wie gebe ich ein Gleitkomma-Unendlich-Literal in Python ein?

Ich habe gehört

 inf = float('inf')

ist nicht tragbar. So habe ich mir folgendes empfehlen lassen:

 inf = 1e400

Ist einer dieser Standards oder tragbar? Was ist die beste Vorgehensweise?

70
fmark

In Python 2.6 ist es portabel, wenn die CPU es unterstützt

Die float () -Funktion verwandelt nun den String nan in einen IEEE 754 Not A Number-Wert und + inf und -inf in eine positive oder negative Unendlichkeit. Dies funktioniert auf jeder Plattform mit IEEE 754-Semantik.

60
Mark

float('inf') ist nicht portierbar wie in nicht portierbar zurück zu Python 2.5, wenn die String-Ausgabe zwischen Plattformen variiert. Ab 2.6 funktioniert float('inf') garantiert auf IEEE-754-kompatiblen Plattformen (siehe http://www.python.org/dev/peps/pep-0754/ ).

(Und die Empfehlung scheint im Bereich 1e30000 zu liegen, nicht nur 1e400.)

16
kennytm

Vielleicht könnten Sie so etwas tun

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