I don't think that is wrong. Take this from the Python interpreter:
>>> round(18.524999999999999,2)
18.52
>>> round(6.1749999999999998,2)
6.17
>>>
In both cases, the number being rounded was less than 5, so it rounded down. 18.52, and 6.17.
That is correct.
One thing I don't get is why you are getting 6.18, and I get 6.17. I am using Python 3.2.2 (the latest version)