Membulatkan kolom dalam tabel atribut menggunakan ArcGIS Field Calculator?


18

Saya ingin menggunakan Field Calculator di ArcMap untuk membulatkan kolom yang ada ke dua desimal. Saat ini saya memiliki kolom yang panjangnya 6 desimal dan ingin membulatkannya menjadi 2 desimal.

Saya telah merencanakan menggunakan Field Calculator (mungkin menggunakan Python) untuk melakukan ini, tetapi mungkin ada cara yang lebih mudah?


Jawaban yang diterima mungkin adalah cara termudah untuk mengubah satu bidang, namun, inilah cara melakukannya dengan kalkulator bidang untuk python dan VB.

VB:

round([column], 2)

Python:

round(!column!, 2)

2
Ekspresi Field Calculator yang tepat dapat mengubah data sehingga mereka mendekati kelipatan 0,01. Seberapa dekat tergantung pada bagaimana bidang disimpan; itu akan berbeda antara mengapung, ganda, dan penyandian desimal. (Dua format pertama tidak dapat dengan tepat menyimpan nilai-nilai tertentu, seperti 0,03 = 1.1000001111010111000010100011110 ... B, yang merupakan ekspresi biner tak terbatas berulang.) Apakah Anda mungkin berniat untuk mengubah bidang itu sendiri sehingga secara akurat hanya menyimpan angka desimal dengan dua desimal tempat?
whuber

Jawaban:


12

Ketika Anda pergi untuk membayar, menghitung atau memberi label bidang yang bisa Anda gunakan,
bulatkan ([my_field], 2)
juga untuk mengubah perilaku bidang dalam arcmap ...
contoh pembulatan


merambah dengan suntingan Anda. oops
Brad Nesom

Tidak apa-apa, benar-benar menyukai sedikit pengetahuan bidang perilaku. Untuk apa yang saya lakukan itu sudah cukup.
jsmith

13

Sudahkah Anda mencoba sesuatu seperti apa yang ada di bawah ini di Kalkulator Bidang?

round(!FieldName!, 2)

Pastikan Anda mengatur Parser ke Python di Kalkulator Bidang.


1
Yup, begitulah cara python! Ternyata itu hal yang sama persis seperti cara VB (jika Anda mengklik dua kali pada bidang untuk menambahkannya). Satu-satunya perbedaan adalah! vs [].
jsmith

5

Kedengarannya seperti beberapa pemformatan string sederhana akan membantu Anda:

>>> "%.2f" % 3.99999
'4.00'
>>>

atau, dengan nomor yang disimpan dalam variabel:

>>> j = 3.999999
>>> "%.2f" % j
'4.00'
>>>

Ini bisa dengan mudah dibungkus dalam fungsi Kalkulator Lapangan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.