Przez przypadek odkryłem, jak ArcMap wyświetla użytkownikowi specjalne wartości zmiennoprzecinkowe.
- + ∞ (dodatnia nieskończoność) jest wyświetlana jako
1.#INF
- –∞ (ujemna nieskończoność) miałby być wyświetlany jako
-1.#INF
- Nie zweryfikowałem tego. NaN (nie liczba) jest wyświetlany jako wyrównany do prawej
<Null>
- nie należy mylić z wyrównaniem do lewej<Null>
, co oznacza NULL (brakujące wartości):(Przy okazji, uzyskaj unikalne wartości w kalkulatorze polowym, w ogóle nie podaje NaN).
Ale nie odkryłem, jak pisać zapytania dotyczące definicji warstw, aby wybrać wiersze na podstawie tych specjalnych wartości:
ColumnName IS NULL
wybierze tylko zwykłe wartości NULL, ale nie NaN.ColumnName = 1.#INF
jest odrzucany jako niepoprawna składnia.
Czy ktoś wie jak to zrobić?
Fragment kodu C # ArcObjects do przechowywania wartości 1. # INF w polu tabeli (podstawowa koncepcja):
Zgodnie z prośbą. Ponieważ nie jestem już w pracy, poniższy kod nie jest prawdziwym kodem, którego użyłem i nie mogę go teraz przetestować, ale powinien dać efekt pokazany na zrzucie ekranu powyżej:
ITable table = …;
int doubleFieldIndex = table.FindField(…);
IRow row = table.CreateRow();
row.Value[doubleFieldIndex] = double.PositiveInfinity;
row.Store();