Как использовать арифметическое округление вместо банковского, и повысить точность расчётов?
Используй decimal, и будет тебе щастье.
Пользуюсь вот такой простой функцией.def rd(x, y=0):
    ''' Функция математического округления '''
    m = int('1' + '0' * y)  # multiplier - how many positions to the right
    q = x * m  # shift to the right by multiplier
    c = int(q)  # new number
    i = int((q - c) * 10)  # indicator number on the right
    if i >= 5:
        c += 1
    return c / m