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 NULL
selecionará 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();