Я случайно обнаружил, как ArcMap отображает специальные значения с плавающей запятой для пользователя.
- + ∞ (положительная бесконечность) отображается как
1.#INF
- –∞ (отрицательная бесконечность) предположительно будет отображаться как
-1.#INF
- я не проверял это. NaN (не число) отображается как выровненный по правому краю
<Null>
- не путать с выровненным по левому краю<Null>
, что означает NULL (пропущенные значения):( Кстати, получить уникальные значения в полевом калькуляторе вообще не перечисляет NaN.)
Но я не обнаружил, как писать запросы определения слоя для выбора строк на основе этих специальных значений:
ColumnName IS NULL
выберет только обычные значения NULL, но не NaN.ColumnName = 1.#INF
отклонен как имеющий неверный синтаксис.
Кто-нибудь знает как это сделать?
Фрагмент кода C # ArcObjects для хранения значения 1. # INF в поле таблицы (базовая концепция):
Как просили. Поскольку я больше не на работе, следующее не является реальным кодом, который я использовал, и я не могу проверить его прямо сейчас, но он должен произвести эффект, показанный на скриншоте выше:
ITable table = …;
int doubleFieldIndex = table.FindField(…);
IRow row = table.CreateRow();
row.Value[doubleFieldIndex] = double.PositiveInfinity;
row.Store();