Arrondir la colonne dans la table attributaire à l'aide d'ArcGIS Field Calculator?

18

Je souhaite utiliser la calculatrice de champ dans ArcMap pour arrondir une colonne existante à deux décimales. Actuellement, j'ai une colonne de 6 décimales et je voudrais simplement l'arrondir à 2 décimales.

J'avais prévu d'utiliser la calculatrice de champ (éventuellement en utilisant Python) pour ce faire, mais peut-être y a-t-il un moyen plus simple?


La réponse acceptée est probablement le moyen le plus simple de modifier un seul champ, cependant, voici comment le faire avec le calculateur de champ pour python et VB.

VB:

round([column], 2)

Python:

round(!column!, 2)
jsmith
la source
2
Une expression de calculatrice de champ appropriée peut modifier les données afin qu'elles se rapprochent étroitement des multiples de 0,01. La distance dépend de la façon dont le champ est stocké; il diffère entre les flottants, les doubles et l'encodage décimal. (Les deux premiers formats ne peuvent pas stocker exactement certaines valeurs, telles que 0,03 = 1,1000001111010111000010100011110 ... B, qui est une expression binaire infinie répétée.) Avez-vous peut-être l'intention de modifier le champ lui-même afin qu'il ne stocke avec précision que des nombres décimaux avec deux décimales des endroits?
whuber

Réponses:

12

Lorsque vous allez à dispay, calculez ou étiquetez le champ que vous pourriez simplement utiliser,
arrondissez ([my_field], 2)
également pour changer le comportement du champ dans arcmap ...
exemple d'arrondi

Brad Nesom
la source
entrecroisé avec votre montage. oups
Brad Nesom
C'est ok, j'ai vraiment aimé le peu de connaissances sur le comportement sur le terrain. Pour ce que je fais, cela suffirait.
jsmith
13

Avez-vous essayé quelque chose comme ce qui est ci-dessous dans la calculatrice de champ?

round(!FieldName!, 2)

Assurez-vous de définir l'analyseur sur Python dans la calculatrice de champ.

Patty Jula
la source
1
Ouais, c'est la façon python! Apparemment, c'est exactement la même chose que la méthode VB (si vous double-cliquez sur le champ pour l'ajouter). La seule différence est! contre [].
jsmith
5

On dirait qu'un formatage de chaîne simple ferait l'affaire pour vous:

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

ou, avec le nombre stocké dans une variable:

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

Cela pourrait facilement être enveloppé dans une fonction de calculatrice de champ.

Chad Cooper
la source