@smiller is correct: row in your code is essentially a tuple, which doesn't have a 'round' method. The following syntax should work. It uses an update cursor and assumes you want to replace the non-rounded values with rounded ones:
with arcpy.da.UpdateCursor(table, ["Distance"]) as cursor:
for row in cursor:
row[0] = round(float(row[0]), 3) # Uses float() in case distance is a string
cursor.updateRow(row)
If you'd like to make a new attribute for the rounded result:
arcpy.AddField_management(table, "Rounded", 'DOUBLE')
with arcpy.da.UpdateCursor(table, ["Distance", "Rounded"]) as cursor:
for row in cursor:
row[1] = round(float(row[0]), 3)
cursor.updateRow(row)
searchRows = arcpy.da.SearchCursor(table, ["Distance"])
, but would need to reference the actual field within the row in your loop, not the overall cursor (e.g.for row in searchRows: print(round(row[0], 3))
. If you want to update these values in your table, use Field Calculator or update cursor.You're getting the TypeError because you're passing the cursor itself.