我正在编写通过 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浮点数。