I have two variables : count, which is a number of my filtered objects, and constant value per_page. I want to divide count by per_page and get integer value but I no matter what I try – I’m getting 0 or 0.0 :
>>> count = friends.count()
>>> print count
1
>>> per_page = 2
>>> print per_page
2
>>> pages = math.ceil(count/per_pages)
>>> print pages
0.0
>>> pages = float(count/per_pages)
>>> print pages
0.0
What am I doing wrong, and why math.ceil gives float number instead of int ?
Python does integer division when both operands are integers, meaning that
1 / 2is basically “how many times does 2 go into 1”, which is of course 0 times. To do what you want, convert one operand to a float:1 / float(2) == 0.5, as you’re expecting. And, of course,math.ceil(1 / float(2))will yield1, as you expect.(I think this division behavior changes in Python 3.)