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.