Saya kebetulan menemukan bagaimana ArcMap menampilkan nilai floating point khusus kepada pengguna.
- + ∞ (positif tanpa batas) ditampilkan sebagai
1.#INF
- –∞ (infinity negatif) seharusnya akan ditampilkan sebagai
-1.#INF
- Saya belum memverifikasi yang ini. NaN (bukan angka) ditampilkan sebagai rata-rata
<Null>
- jangan dikacaukan dengan rata kiri<Null>
, yang menunjukkan NULL (nilai yang hilang):( Omong-omong, dapatkan nilai unik di bidang kalkulator tidak mencantumkan NaN sama sekali.)
Tetapi saya belum menemukan cara menulis query definisi layer untuk memilih baris berdasarkan pada nilai-nilai khusus ini:
ColumnName IS NULL
hanya akan memilih nilai NULL biasa, tetapi bukan NaN.ColumnName = 1.#INF
ditolak karena memiliki sintaks yang tidak valid.
Adakah yang tahu bagaimana melakukan ini?
Cuplikan kode kode C # ArcObjects untuk menyimpan nilai 1. # INF ke bidang tabel (konsep dasar):
Seperti yang diminta. Karena saya tidak lagi bekerja, berikut ini bukan kode asli yang saya gunakan dan saya tidak bisa mengujinya sekarang, tetapi seharusnya menghasilkan efek yang ditunjukkan pada tangkapan layar di atas:
ITable table = …;
int doubleFieldIndex = table.FindField(…);
IRow row = table.CreateRow();
row.Value[doubleFieldIndex] = double.PositiveInfinity;
row.Store();