使用ArcGIS Field Calculator在属性表中舍入列?


18

我想使用ArcMap中的字段计算器将现有列舍入到两位小数。目前,我有一列长6位小数的小数位数,想简单地将其舍入到2位小数。

我曾计划使用字段计算器(可能使用Python)来执行此操作,但是也许有更简单的方法吗?


可接受的答案可能是更改单个字段的最简单方法,但是,这是如何使用适用于python和VB的字段计算器来实现的。

VB:

round([column], 2)

蟒蛇:

round(!column!, 2)

2
适当的字段计算器表达式可以更改数据,以使它们紧密近似为0.01的倍数。 如何接近取决于字段的存储方式; 浮点,双精度和十进制编码之间会有所不同。(前两种格式不能完全存储某些值,例如0.03 = 1.1000001111010111000010100011110 ... B,它是重复的无穷二进制表达式。)您是否打算更改字段本身,以便仅精确存储带有两个小数的十进制数地方?
Whuber

Answers:


12

当您去支付,计算或标记您可能只使用的字段时,
也要四舍五入([my_field],2)
来更改arcmap中的字段行为...
舍入示例


crisscrossed with your edit. oops
Brad Nesom

没关系,真的很喜欢现场行为知识。对于我正在做的就足够了。
jsmith 2012年

13

您是否尝试过以下类似字段计算器中的内容?

round(!FieldName!, 2)

确保在字段计算器中将解析器设置为Python。


1
是的,这就是python方法!显然,这与VB方式完全相同(如果您双击该字段以添加它)。唯一的区别是!与[]。
jsmith 2012年

5

听起来有些简单的字符串格式可以为您解决问题:

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

或者,将数字存储在变量中:

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

这可以很容易地包装在字段计算器功能中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.