Python falsche Rundung mit Gleitkommazahlen

>>> a = 0.3135
>>> print("%.3f" % a)
0.314
>>> a = 0.3125
>>> print("%.3f" % a)
0.312
>>>

Ich erwarte 0,313 statt 0,312. Irgendwelche Gedanken darüber, warum dies so ist, und gibt es eine alternative Möglichkeit, 0,313 zu erhalten?

Vielen Dank