round(number) округляет с заданной точность к ближайшему.
А как округлить число с плавающей точкой вниз с заданной точностью?
from math import floor >>> floor(2.75) 2.0 def floor2(n, m): return round(floor(n)+round(n - floor(n), m), m)
>>> from decimal import Decimal, getcontext >>> getcontext().prec = 2 >>> Decimal("22") / Decimal("7") Decimal('3.1') >>> Decimal("220") / Decimal("7") Decimal('31')
>>> 220*7 1540 >>> getcontext().prec = 2 >>> int(Decimal("220") * Decimal("7")) 1500 >>> int(Decimal("221.5") * Decimal("7")) 1600