>>> a = 0.3135 >>> print(\"%.3f\" % a) 0.314 >>> a = 0.3125 >>> print(\"%.3f\" % a) 0.312 >>>
I am exp
I had the same incorrect rounding
round(0.573175, 5) = 0.57317
round(0.573175, 5)
My solution
def to_round(val, precision=5): prec = 10 ** precision return str(round(val * prec) / prec)
to_round(0.573175) = '0.57318'
to_round(0.573175)