Целочисленное деление является значением по умолчанию оператора /
в Python <3.0.Такое поведение кажется немного странным.Возвращает дивиденд без остатка.</p>
>>> 10 / 3
3
Если вы используете Python 2.6+, попробуйте:
from __future__ import division
>>> 10 / 3
3.3333333333333335
Если вы используете более низкую версию Python, чем эта, вам нужно будет конвертировать хотя бы одинчислителя или знаменателя для числа с плавающей запятой:
>>> 10 / float(3)
3.3333333333333335
Кроме того, math.ceil всегда возвращает число с плавающей запятой ...
>>> import math
>>> help(math.ceil)
ceil(...)
ceil(x)
Return the ceiling of x as a float.
This is the smallest integral value >= x.