Por casualidad, descubrí cómo ArcMap muestra valores especiales de coma flotante para el usuario.
- + ∞ (infinito positivo) se muestra como
1.#INF
- –∞ (infinito negativo) supuestamente se mostraría como
-1.#INF
- No he verificado este. NaN (no es un número) se muestra como alineado a la derecha
<Null>
, no debe confundirse con alineado a la izquierda<Null>
, que denota NULL (valores faltantes):(Por cierto, obtener valores únicos en la calculadora de campo no enumera NaN).
Pero no he descubierto cómo escribir consultas de definición de capa para seleccionar filas en función de estos valores especiales:
ColumnName IS NULL
solo seleccionará valores NULL regulares, pero no NaN.ColumnName = 1.#INF
se rechaza por tener una sintaxis no válida.
¿Alguien sabe como hacer esto?
Fragmento de código de ArcObjects de C # para almacenar un valor 1. # INF en un campo de tabla (concepto básico):
De acuerdo a lo pedido. Como ya no estoy en el trabajo, el siguiente no es el código real que utilicé y no puedo probarlo en este momento, pero debería producir el efecto que se muestra en la captura de pantalla anterior:
ITable table = …;
int doubleFieldIndex = table.FindField(…);
IRow row = table.CreateRow();
row.Value[doubleFieldIndex] = double.PositiveInfinity;
row.Store();