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)

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


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.


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.