我正在编写通过 Windows 中的 COM与NI TestStand 4.2 交互的 Python 2.6 代码。我想为变量创建一个“NAN”值,但如果我通过它float('nan')
,TestStand 将它显示为IND
.
显然,TestStand 区分浮点“IND”和“NAN”值。根据TestStand 帮助:
IND
对应于 Visual C++中的Signaling NaN ,而NAN
对应QuietNaN
这意味着当通过 COM 传递Python 时,float('nan')
它实际上是一个Signaling NaN 。但是,从我读到的有关Signaling NaN的内容来看, Signaling NaN似乎有点“异国情调”,而Quiet NaN是您的“常规” NaN。所以我怀疑 Python 是否会通过 COM传递Signaling NaN 。我怎样才能知道 Python是否作为Signaling NaN或Quiet NaN或Indeterminatefloat('nan')
通过 COM 传递?
在与其他语言交互时,有没有办法在 Python 中制作Signaling NaN与QuietNaN或Indeterminate ?(ctypes
也许使用?)我认为这将是一个特定于平台的解决方案,在这种情况下我会接受。
更新:在 TestStand 序列编辑器中,我尝试制作两个变量,一个设置为NAN
,另一个设置为IND
. 然后我把它保存到一个文件中。然后我打开文件并使用 Python 读取每个变量。在这两种情况下,Python 都将它们读取为nan
浮点数。