Я пишу код Python 2.6, который взаимодействует с NI TestStand через COM в Windows. Я хочу сделать значение "NAN" для переменной, но если я передаю ее float('nan')
, TestStand отобразит ее как IND
.
По-видимому, TestStand различает значения плавающей запятой "IND" и "NAN". Согласно Справка TestStand:
-
IND
соответствует сигнальному NaN в Visual С++, а -
NAN
соответствует QuietNaN
Это означает, что Python float('nan')
является фактически сигнальным NaN при его передаче через COM. Однако из того, что я прочитал о Signaling NaN, кажется, что Signaling NaN немного "экзотичен", а Quiet NaN - ваш "обычный" NaN. Поэтому у меня есть сомнения в том, что Python будет передавать сигнал NaN через COM. Как я могу узнать, прошел ли Python float('nan')
через COM в качестве сигнального NaN или Quiet NaN или, может быть, неопределенного?
Есть ли способ сделать Сигнализацию NaN против QuietNaN или неопределенной в Python при взаимодействии с другими языками? (С помощью ctypes
возможно?) Я предполагаю, что это будет решение для конкретной платформы, и я бы согласился с этим в этом случае.
Обновление: В редакторе последовательности TestStand я попытался сделать две переменные, один из которых - NAN
, а другой - IND
. Затем я сохранил его в файле. Затем я открыл файл и прочитал каждую переменную с помощью Python. В обоих случаях Python читает их как float NAN
.