<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Problems with deicimal point when calculating sum in script in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/problems-with-deicimal-point-when-calculating-sum/m-p/173428#M13365</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Doug!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you very much for your time!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have tried both your scripts with different results.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The first script i tried directly on a table (dbf). When I calculate integers I just get the result 1. When there are decimal points involved I get an error message saying (Script run in PyScripter):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Runtime error&amp;nbsp; Traceback (most recent call last):&amp;nbsp;&amp;nbsp; File "&amp;lt;string&amp;gt;", line 19, in &amp;lt;module&amp;gt;&amp;nbsp;&amp;nbsp; File "&amp;lt;string&amp;gt;", line 14, in main&amp;nbsp;&amp;nbsp; File "c:\program files (x86)\arcgis\desktop10.1\arcpy\arcpy\management.py", line 3129, in CalculateField&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise e ExecuteError: ERROR 999999: Error executing function. The field is not nullable. [summa] Failed to execute (CalculateField).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The second script (toolbox) returns the correct sum with integers but fails when it comes to decimal points. This is the error message:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;----------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Executing: CalculateSum "K:\Gemensam\EU-projekt\Algae Be Gone\GIS\egna skikt\Biotopkartering Dk\tabort\New_Shapefile.shp" values summa&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Start Time: Thu Dec 19 11:29:46 2013&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Running script CalculateSum...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Traceback (most recent call last):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "&amp;lt;string&amp;gt;", line 79, in execute&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "c:\program files (x86)\arcgis\desktop10.1\arcpy\arcpy\management.py", line 3129, in CalculateField&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise e&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ExecuteError: ERROR 999999: Error executing function.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The field is not nullable. [summa]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Failed to execute (CalculateField).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Failed to execute (CalculateSum).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Failed at Thu Dec 19 11:29:47 2013 (Elapsed Time: 1,00 seconds)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, a bit off topic, the error message says elapsed time 1,00 seconds. But ArcMap i busy for at least 10 seconds before the computing fails. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have attached both the shape file and the table I have used.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hoping for more clues of what might be wrong here!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Richard&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 19 Dec 2013 08:41:51 GMT</pubDate>
    <dc:creator>RichardNilsson</dc:creator>
    <dc:date>2013-12-19T08:41:51Z</dc:date>
    <item>
      <title>Problems with deicimal point when calculating sum in script</title>
      <link>https://community.esri.com/t5/python-questions/problems-with-deicimal-point-when-calculating-sum/m-p/173426#M13363</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;First, I am very new to python! And not very skilled in programing at all. So bare with me, please! If there is anyone out there that might be interested in helping me, please be as basic as possible. &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Anyhow, I am trying to use a script in a toolbox I created. The script sums the rows in a field and fills the result in another field.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcgisscripting, sys
gp = arcgisscripting.create()

intable = sys.argv[1]
field = sys.argv[2]

# Create search cursor
rows = gp.SearchCursor(intable)
row = rows.Next()
x = 0.0
# Enter while loop for each feature/row
while row:
&amp;nbsp;&amp;nbsp;&amp;nbsp; x += row.getvalue(field)
&amp;nbsp;&amp;nbsp;&amp;nbsp; print x
&amp;nbsp;&amp;nbsp;&amp;nbsp; row = rows.next()
#note value can be rounded depending on field type
gp.calculatefield(intable,sys.argv[3],float(x),"PYTHON")&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Kudos goes out to Terry Giles for posting this script &lt;/SPAN&gt;&lt;A href="http://forums.esri.com/Thread.asp?c=93&amp;amp;f=1728&amp;amp;t=241385" rel="nofollow noopener noreferrer" target="_blank"&gt;here&lt;/A&gt;&lt;SPAN&gt;! &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Both input and output fields, in the table, are set to be of the type Float.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Parameters in the properties are&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Display Name - Data Type&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-----------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Layer or Table - Table&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Input Field - Field&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Output Field - Field&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Output Layer - Table&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-----------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Parameter Properties &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Display Name&amp;nbsp; - Property - Value&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-----------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Layer or Table - Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Required&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Layer or Table - Direction&amp;nbsp;&amp;nbsp;&amp;nbsp; - Input&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Layer or Table - Multivalue&amp;nbsp;&amp;nbsp; - No&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Layer or Table - Filter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - None&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-----------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Input Field&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Required&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Input Field&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Direction&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Input&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Input Field&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Multivalue&amp;nbsp;&amp;nbsp;&amp;nbsp; - No&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Input Field&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Filter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - None&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Input Field&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Obtained from - Layer or Table&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-----------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Output Field&amp;nbsp;&amp;nbsp;&amp;nbsp; - Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Required&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Output Field&amp;nbsp;&amp;nbsp;&amp;nbsp; - Direction&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Input&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Output Field&amp;nbsp;&amp;nbsp;&amp;nbsp; - Multivalue&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - No&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Output Field&amp;nbsp;&amp;nbsp;&amp;nbsp; - Filter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - None&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Output Field&amp;nbsp;&amp;nbsp;&amp;nbsp; - Obtained from&amp;nbsp;&amp;nbsp;&amp;nbsp; - Layer or Table&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-----------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Output Layer&amp;nbsp;&amp;nbsp;&amp;nbsp; - Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Derived&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Output Layer&amp;nbsp;&amp;nbsp;&amp;nbsp; - Direction&amp;nbsp;&amp;nbsp;&amp;nbsp; - Output&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Output Layer&amp;nbsp;&amp;nbsp;&amp;nbsp; - Multivalue&amp;nbsp;&amp;nbsp; - No&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Output Layer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Filter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - None&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My problem is that the script only works for integers. All I get when calculating numbers containing a decimal point is null. At least that is what ends up in my field... &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I had a suspicion that this might be a localization problem. The numbers used for calculation are in Swedish, i.e 8,2. Using a comma sign as decimal point. BUT, When i run a check on locales i get: getlocale =&amp;nbsp; ('Swedish_Sweden', '1252'), getdefaultlocale = ('sv_SE', 'cp1252') and getpreferredencoding = cp1252. Which, to me, looks correct. So that smashes my suspicion. &lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am using ArcGIS 10.1 SP1 for Desktop with standard license. This takes place on a Swedish installation, but set to show English. If I understand it correctly I am running Python 2.7. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have searched through all possible forums in hunt for solution, my hope now goes out to you guys here!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/Richard&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Edit: The script runs in PyScript, but the output only shows periods instead of commas.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 08:58:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/problems-with-deicimal-point-when-calculating-sum/m-p/173426#M13363</guid>
      <dc:creator>RichardNilsson</dc:creator>
      <dc:date>2021-12-11T08:58:13Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with deicimal point when calculating sum in script</title>
      <link>https://community.esri.com/t5/python-questions/problems-with-deicimal-point-when-calculating-sum/m-p/173427#M13364</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Not sure that this will resolve all the issues, but try the following code?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy

def main():
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Set inputs
&amp;nbsp;&amp;nbsp;&amp;nbsp; feature = ''
&amp;nbsp;&amp;nbsp;&amp;nbsp; field = ''
&amp;nbsp;&amp;nbsp;&amp;nbsp; sum_field = ''
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Get the sum
&amp;nbsp;&amp;nbsp;&amp;nbsp; total_val = sum([row[0] for row in arcpy.da.SearchCursor(feature, [field])])

&amp;nbsp;&amp;nbsp;&amp;nbsp; #Calculate the value
&amp;nbsp;&amp;nbsp;&amp;nbsp; table = arcpy.MakeTableView_management(feature, 'table')
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CalculateField_management(table, sum_field, total_val, 'PYTHON_9.3')
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Delete_management(table)
&amp;nbsp;&amp;nbsp;&amp;nbsp; return

if __name__ == '__main__':
&amp;nbsp;&amp;nbsp;&amp;nbsp; main()
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The float() conversion isn't necessary since python will do this automatically if it sees float data.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Alternatively, if you save the following with a .pyt extension, ArcGIS will automatically recognize it as a toolbox:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy

class Toolbox(object):
&amp;nbsp;&amp;nbsp;&amp;nbsp; def __init__(self):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.label = 'Calculate Sum'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.alias = ''

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # List of tool classes associated with this toolbox
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.tools = [CalculateSum]


class CalculateSum(object):
&amp;nbsp;&amp;nbsp;&amp;nbsp; def __init__(self):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.label = 'Calculate Sum'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.description = ''
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.canRunInBackground = True

&amp;nbsp;&amp;nbsp;&amp;nbsp; def getParameterInfo(self):

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p0 = arcpy.Parameter(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = "input_file",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; displayName = "Input File",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; datatype = "DEFeatureClass",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parameterType = "Required",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; direction = "Input")

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p1 = arcpy.Parameter(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = "value_field",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; displayName = "Select Value Field",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; datatype = "Field",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parameterType = "Required",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; direction = "Input")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p1.parameterDependencies = [p0.name]

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p2 = arcpy.Parameter(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = "sum_field",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; displayName = "Select Field to Populate",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; datatype = "Field",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parameterType = "Required",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; direction = "Input")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p2.parameterDependencies = [p0.name]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params = [p0, p1, p2]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return params

&amp;nbsp;&amp;nbsp;&amp;nbsp; def isLicensed(self):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''Set whether tool is licensed to execute.'''
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return True

&amp;nbsp;&amp;nbsp;&amp;nbsp; def updateParameters(self, parameters):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''Modify the values and properties of parameters before internal
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; validation is performed.&amp;nbsp; This method is called whenever a parameter
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; has been changed.'''
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return

&amp;nbsp;&amp;nbsp;&amp;nbsp; def updateMessages(self, parameters):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''Modify the messages created by internal validation for each tool
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parameter.&amp;nbsp; This method is called after internal validation.'''
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Make it impossible for the two fields to be the same.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if parameters[1].valueAsText == parameters[2].valueAsText:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parameters[1].setErrorMessage("Value field cannot be the same as Populate Field.")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parameters[2].setErrorMessage("Populate Field value cannot be the same as Value field.")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Run the functions for this tool.
&amp;nbsp;&amp;nbsp;&amp;nbsp; def execute(self, params, messages):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Get the parameters
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; feature, field, sum_field = [p.valueAsText for p in params]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Get the sum
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total_val = sum([row[0] for row in arcpy.da.SearchCursor(feature, [field])])

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Calculate the value
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; table = arcpy.MakeTableView_management(feature, 'table')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CalculateField_management(table, sum_field, total_val, 'PYTHON_9.3')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Delete_management(table)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope this helps. Let me know if it doesn't work for you.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 08:58:16 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/problems-with-deicimal-point-when-calculating-sum/m-p/173427#M13364</guid>
      <dc:creator>DouglasSands</dc:creator>
      <dc:date>2021-12-11T08:58:16Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with deicimal point when calculating sum in script</title>
      <link>https://community.esri.com/t5/python-questions/problems-with-deicimal-point-when-calculating-sum/m-p/173428#M13365</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Doug!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you very much for your time!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have tried both your scripts with different results.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The first script i tried directly on a table (dbf). When I calculate integers I just get the result 1. When there are decimal points involved I get an error message saying (Script run in PyScripter):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Runtime error&amp;nbsp; Traceback (most recent call last):&amp;nbsp;&amp;nbsp; File "&amp;lt;string&amp;gt;", line 19, in &amp;lt;module&amp;gt;&amp;nbsp;&amp;nbsp; File "&amp;lt;string&amp;gt;", line 14, in main&amp;nbsp;&amp;nbsp; File "c:\program files (x86)\arcgis\desktop10.1\arcpy\arcpy\management.py", line 3129, in CalculateField&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise e ExecuteError: ERROR 999999: Error executing function. The field is not nullable. [summa] Failed to execute (CalculateField).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The second script (toolbox) returns the correct sum with integers but fails when it comes to decimal points. This is the error message:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;----------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Executing: CalculateSum "K:\Gemensam\EU-projekt\Algae Be Gone\GIS\egna skikt\Biotopkartering Dk\tabort\New_Shapefile.shp" values summa&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Start Time: Thu Dec 19 11:29:46 2013&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Running script CalculateSum...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Traceback (most recent call last):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "&amp;lt;string&amp;gt;", line 79, in execute&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "c:\program files (x86)\arcgis\desktop10.1\arcpy\arcpy\management.py", line 3129, in CalculateField&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise e&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ExecuteError: ERROR 999999: Error executing function.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The field is not nullable. [summa]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Failed to execute (CalculateField).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Failed to execute (CalculateSum).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Failed at Thu Dec 19 11:29:47 2013 (Elapsed Time: 1,00 seconds)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;----------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, a bit off topic, the error message says elapsed time 1,00 seconds. But ArcMap i busy for at least 10 seconds before the computing fails. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have attached both the shape file and the table I have used.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hoping for more clues of what might be wrong here!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Richard&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Dec 2013 08:41:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/problems-with-deicimal-point-when-calculating-sum/m-p/173428#M13365</guid>
      <dc:creator>RichardNilsson</dc:creator>
      <dc:date>2013-12-19T08:41:51Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with deicimal point when calculating sum in script</title>
      <link>https://community.esri.com/t5/python-questions/problems-with-deicimal-point-when-calculating-sum/m-p/173429#M13366</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;When I use your data the .pyt script 'works' for me, although the sum is incorrect (see picture).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you tried using a field type of double instead of float?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]30050[/ATTACH]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Dec 2013 20:04:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/problems-with-deicimal-point-when-calculating-sum/m-p/173429#M13366</guid>
      <dc:creator>DouglasSands</dc:creator>
      <dc:date>2013-12-20T20:04:18Z</dc:date>
    </item>
  </channel>
</rss>

