Estoy escribiendo el código Python 2.6 que se conecta con NI TestStand 4.2 a través de COM en Windows. Quiero hacer un valor "NAN" para una variable, pero si lo paso float('nan')
, TestStand lo muestra como IND
.Cómo distinguir diferentes tipos de flotador NaN en Python
Aparentemente TestStand distingue entre los valores de coma flotante "IND" y "NAN". De acuerdo con TestStand help:
IND
corresponde a señalización NaN en Visual C++, mientras queNAN
corresponde a QuietNaN
Eso implica que Python de float('nan')
es efectivamente un señalización NaN cuando pasó a través de COM. Sin embargo, por lo que he leído sobre Signaling NaN, parece que Signaling NaN es un poco "exótico" y Quiet NaN es su NaN "normal". Así que tengo mis dudas de que Python estaría pasando un Signaling NaN a través de COM. ¿Cómo podría saber si un pitón float('nan')
se pasa a través de COM como señalización NaN o Quiet NaN, o tal vez indeterminado?
¿Hay alguna manera de hacer una señalización NaN frente QuietNaN o indeterminado en Python, al interactuar con otras lenguas? (¿Usando ctypes
quizás?) Supongo que esta sería una solución específica de la plataforma, y lo aceptaría en este caso.
Actualización: En el editor de secuencias de TestStand, he intentado hacer dos variables, un conjunto a NAN
y el otro conjunto de IND
. Luego lo guardé en un archivo. Luego abrí el archivo y leí cada variable usando Python. En ambos casos, Python los lee como un flotador nan
.
Por qué es exactamente lo que quiere hacer esto? Puede estar complicando las cosas. Podría usar un NoneType quizás ... – JoshD
Quiero establecer una variable para 'NAN' (en lugar de' IND') en TestStand, a través de COM usando Python. Será más fácil documentar para el usuario final si podemos usar consistentemente 'NAN' en todo nuestro sistema. –