Ошибка округления в Python с не-нечетным числом?

Я новичок в Python, и у меня есть один вопрос.
Почему округление числа типа 5.5, 7.5, (всего).5 с нечетной целой частью с применением round(num)работает правильно (правило 5/4), но округление числа вида (всего).5 с не-нечетной целой частью той же функцией возвращает только целую часть? (Но если мы добавим небольшое число, например 0,000000001, к этому десятичному числу, оно будет работать правильно.)

Я имею в виду, что следующее:

round(9.5)

возвращает 10, и это правильно. Но

round(8.5)

возвращает 8, а это неправильно. А

round(8.5 + 0.0000000000001)

возвращает 9.

Почему работает некорректно?
Я использую Python 3.2.2 в Windows.

9
задан FOX 9000 13 June 2014 в 14:47
поделиться