The Python parser in the Field Calculator returns incorrect results


In ArcMap, when the Python parser is used in the Field Calculator to carry out a division operation, integers are returned instead of decimals.

An example of the Python expression is as follows:


The division operation using the Field Calculator returns 0 for all fields.



This is by design. Python 2.x is designed to return integers when dividing whole numbers regardless of the field type. For example, 1/9=0.

Solution or Workaround

In the attribute table, create a float type field. This allows Python to return a decimal in the result. After creating the new field, apply the Python script.

  1. Create a new field type as float in the attribute table.
    1. Open ArcMap.
    2. Right-click the selected layer in the Table Of Contents, and select Open Attribute Table.
  1. Click the Table options drop-down, and select Add Field.
[O-Image] [O]
  1. In the Add Field dialog box, set the field name, and select Float as the field type, and click OK.
  1. Apply the Python script.
    1. Right-click the new field, and select Field Calculator.
  1. If a warning on calculating outside of an edit session displays, click Yes.
  2. In the Field Calculator, type the script highlighted below.
 The code provided is for the input of the type float.
  1. Click OK.

    Article ID:000012400

    • ArcMap 10 x

    Get help from ArcGIS experts

    Contact technical support

    Download the Esri Support App

    Go to download options

    Related Information

    Discover more on this topic