Округление столбца в таблице атрибутов с использованием ArcGIS Field Calculator?

18

Я хочу использовать Калькулятор поля в ArcMap, чтобы округлить существующий столбец до двух десятичных знаков. В настоящее время у меня есть столбец длиной 6 знаков после запятой, и я хотел бы просто округлить его до 2 знаков после запятой.

Я планировал использовать Калькулятор поля (возможно, с использованием Python), но, может быть, есть более простой способ?


Принятый ответ, вероятно, является самым простым способом изменить отдельное поле, однако, вот как это сделать с помощью калькулятора полей для Python и VB.

VB:

round([column], 2)

Python:

round(!column!, 2)
JSmith
источник
2
Соответствующее выражение Калькулятор поля может изменить данные так, чтобы они близко приближались к кратным 0,01. Насколько близко зависит от того, как поле хранится; это будет отличаться между числами с плавающей запятой, двойными числами и десятичной кодировкой. (Первые два формата не могут точно хранить определенные значения, такие как 0.03 = 1.1000001111010111000010100011110 ... B, который представляет собой повторяющееся бесконечное двоичное выражение.) Возможно, вы намереваетесь изменить само поле так, чтобы оно точно сохраняло только десятичные числа с двумя десятичными знаками? места?
whuber

Ответы:

12

Когда вы отправляетесь на отображение, вычисляете или
помечаете поле, которое вы можете просто использовать, округлите ([my_field], 2)
также, чтобы изменить поведение поля в arcmap ...
пример округления

Брэд Несом
источник
перекрещены с вашей правкой. упс
Брэд Несом
Это нормально, очень понравилось полевое поведение, немного знаний. Для того, что я делаю, этого будет достаточно.
Джеймс
13

Вы пробовали что-то вроде того, что ниже в калькуляторе поля?

round(!FieldName!, 2)

Убедитесь, что вы установили Parser на Python в Калькуляторе поля.

Пэтти Юла
источник
1
Да, это путь питона! Очевидно, это то же самое, что и способ VB (если дважды щелкнуть поле, чтобы добавить его). Разница только в том! против [].
Джеймс
5

Похоже, какое-то простое форматирование строк поможет вам:

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

или с номером, хранящимся в переменной:

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

Это можно легко обернуть в функцию Калькулятор поля.

Чед Купер
источник