Por acaso, descobri como o ArcMap exibe valores especiais de ponto flutuante para o usuário.
- + ∞ (infinito positivo) é exibido como
1.#INF - –∞ (infinito negativo) supostamente seria exibido como
-1.#INF- não verifiquei este. NaN (não um número) é exibido como alinhado à direita
<Null>- não deve ser confundido com alinhado à esquerda<Null>, que indica NULL (valores ausentes):
( Obter valores exclusivos na calculadora de campo não lista o NaN, a propósito.)
Mas não descobri como escrever consultas de definição de camada para selecionar linhas com base nesses valores especiais:
ColumnName IS NULLselecionará apenas valores NULL regulares, mas não NaN.ColumnName = 1.#INFé rejeitado por ter sintaxe inválida.
Alguém sabe como fazer isso?
Trecho de código C # ArcObjects para armazenar um valor 1. # INF em um campo da tabela (conceito básico):
Como pedido. Como não estou mais no trabalho, o código a seguir não é o real que eu usei e não posso testá-lo agora, mas deve produzir o efeito mostrado na captura de tela acima:
ITable table = …;
int doubleFieldIndex = table.FindField(…);
IRow row = table.CreateRow();
row.Value[doubleFieldIndex] = double.PositiveInfinity;
row.Store();