Arrotondare la colonna nella tabella degli attributi usando ArcGIS Field Calculator?


18

Voglio usare il calcolatore di campo in ArcMap per arrotondare una colonna esistente a due decimali. Attualmente ho una colonna lunga 6 decimali e vorrei semplicemente arrotondarla per difetto a 2 decimali.

Avevo programmato di usare il calcolatore di campo (possibilmente usando Python) per farlo, ma forse c'è un modo più semplice?


La risposta accettata è probabilmente il modo più semplice per cambiare un singolo campo, tuttavia, ecco come farlo con il calcolatore di campo sia per Python che per VB.

VB:

round([column], 2)

Pitone:

round(!column!, 2)

2
Un'espressione appropriata del calcolatore di campo può modificare i dati in modo tale da avvicinarsi a multipli di 0,01. Quanto vicino dipende da come viene memorizzato il campo; differirà tra float, double e codifica decimale. (I primi due formati non possono archiviare esattamente determinati valori, come 0.03 = 1.1000001111010111000010100011110 ... B, che è un'espressione binaria infinita ripetuta.) Forse hai intenzione di cambiare il campo stesso in modo che memorizzi accuratamente solo numeri decimali con due decimali posti?
whuber

Risposte:


12

Quando vai al dispay, calcola o etichetta il campo che potresti semplicemente usare,
arrotondare ([my_field], 2)
anche per cambiare il comportamento del campo in arcmap ...
esempio di arrotondamento


incrociato con la tua modifica. oops
Brad Nesom,

Va bene, mi è piaciuta molto la conoscenza del comportamento sul campo. Per quello che sto facendo sarebbe sufficiente.
fabbro

13

Hai provato qualcosa come quello che c'è sotto nel Field Calculator?

round(!FieldName!, 2)

Assicurati di impostare il parser su Python nel Field Calculator.


1
Sì, questa è la via del pitone! Apparentemente è esattamente la stessa cosa del modo VB (se fai doppio clic sul campo per aggiungerlo). L'unica differenza è! vs [].
fabbro

5

Sembra che una semplice formattazione delle stringhe farebbe al caso tuo:

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

oppure, con il numero memorizzato in una variabile:

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

Questo potrebbe essere facilmente racchiuso in una funzione Field Calculator.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.