Wie man verschiedene Arten von NaN-Float in Python unterscheidet

Ich schreibe Python 2.6-Code, der mit @ zusammenarbeiteNI TestStand 4.2 über COM in Windows. Ich möchte einen "NAN" -Wert für eine Variable erstellen, aber wenn ich ihn übergebfloat('nan'), TestStand zeigt es als @ IND.

TestStand unterscheidet offenbar zwischen Gleitkomma- "IND" - und "NAN" -Werten. GemäßTestStand help:

IND entsprichtSignaling NaN in Visual C ++, währendNAN entspricht QuietNaN

Das bedeutet, dass Pythonsfloat('nan') ist effektiv einSignaling NaN, wenn durch COM übergeben. Nach allem, was ich über @ gelesen haSignaling NaN, Es scheint, dassSignaling NaN ist ein bisschen "exotisch" undQuiet NaN ist dein "normales" NaN. Also habe ich meine Zweifel, dass Python ein @ passieren würSignaling NaN durch COM.Wie kann ich herausfinden, ob ein Pythonfloat('nan') wird durch COM als @ übergebSignaling NaN oderQuiet NaN, oder vielleichtUnbestimm?

Gibt es eine Möglichkeit, ein @ zu macheSignaling NaN gegen QuietNaN oderUnbestimm in Python, wenn eine Schnittstelle mit anderen Sprachen besteht? (Mitctypes vielleicht?) Ich gehe davon aus, dass dies eine plattformspezifische Lösung ist, und ich würde das in diesem Fall akzeptieren.

Aktualisieren Im TestStand-Sequenzeditor habe ich versucht, zwei Variablen zu erstellen, von denen eine auf @ gesetzt isNAN und der andere auf @ gesetIND. Dann habe ich es in eine Datei gespeichert. Dann öffnete ich die Datei und las jede Variable mit Python. In beiden Fällen liest Python sie alsnan float.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage