How to perform ceiling-division in integer arithmetic?

Newbie_Android picture Newbie_Android · Oct 23, 2015 · Viewed 15.1k times · Source

It's basically returning the boxes_needed. 1 box can contain 10 items. So if the items typed by the user is 102 then the code should return 11 boxes.

Is there a way to divide that rounds upwards if there is a non-zero remainder?

Answer

Raymond Hettinger picture Raymond Hettinger · Oct 23, 2015

For your use case, use integer arithmetic. There is a simple technique for converting integer floor division into ceiling division:

items = 102
boxsize = 10
num_boxes = (items + boxsize - 1) // boxsize

Alternatively, use negation to convert floor division to ceiling division:

num_boxes = -(items // -boxsize)