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