So, today I was confused why on earth dividing two ints (which leaves a remainder), didn't return back an int.
In the end, I re-casted the ints as floats, performed the division, and this worked fine. Looked through the docs, and found this: http://docs.python.org/library/stdtypes.html *"For (plain or long) integer division, the result is an integer. The result is always rounded towards minus infinity: 1/2 is 0, (-1)/2 is -1, 1/(-2) is -1, and (-1)/(-2) is 0. Note that the result is a long integer if either operand is a long integer, regardless of the numeric value."* * * Has anyone else come up against this gotcha before? I'm wondering if it's better practise to always cast a number as a float/decimal, rather than an int. Any thoughts guys? Cal --- code snip --- >>> import math >>> math.ceil(7672 / 50) 153.0 >>> 7672 / 50 153 >>> float(7672 / 50) 153.0 >>> 7672 / 50 153 >>> type(7672) <type 'int'> >>> type(50) <type 'int'> >>> float(7672) / float(50) 153.44 >>> math.ceil(float(7672) / float(50)) 154.0 >>> -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.