Форум сайта python.su
round(number) округляет с заданной точность к ближайшему.
А как округлить число с плавающей точкой вниз с заданной точностью?
Офлайн
Можешь домножить на 10000, взять только целую часть, а потом поделить на 10000 обратно.
Офлайн
Либо воспользоваться модулем decimal. quantize и ROUND_DOWN помогут
Офлайн
> А как округлить число с плавающей точкой вниз с заданной точностью?
Как-то так:
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
Отредактировано Rodegast (Сен. 7, 2018 12:49:33)
Офлайн