J'ai découvert par hasard comment ArcMap affiche des valeurs à virgule flottante spéciales pour l'utilisateur.
- + ∞ (infini positif) s'affiche comme
1.#INF
- –∞ (infini négatif) serait censé être affiché comme
-1.#INF
- je n'ai pas vérifié celui-ci. NaN (pas un nombre) est affiché comme aligné à droite
<Null>
- à ne pas confondre avec aligné à gauche<Null>
, ce qui indique NULL (valeurs manquantes):( Soit dit en passant, obtenir des valeurs uniques dans le calculateur de champ ne répertorie pas du tout NaN.)
Mais je n'ai pas découvert comment écrire des requêtes de définition de couche pour sélectionner des lignes en fonction de ces valeurs spéciales:
ColumnName IS NULL
sélectionnera uniquement des valeurs NULL régulières, mais non NaN.ColumnName = 1.#INF
est rejeté comme ayant une syntaxe non valide.
Est-ce que quelqu'un sait comment faire ça?
Extrait de code C # ArcObjects pour stocker une valeur 1. # INF dans un champ de table (concept de base):
Comme demandé. Comme je ne suis plus au travail, ce qui suit n'est pas le vrai code que j'ai utilisé et je ne peux pas le tester pour le moment, mais cela devrait produire l'effet indiqué dans la capture d'écran ci-dessus:
ITable table = …;
int doubleFieldIndex = table.FindField(…);
IRow row = table.CreateRow();
row.Value[doubleFieldIndex] = double.PositiveInfinity;
row.Store();