Найти - Пользователи
Полная версия: Округление
Начало » Python для новичков » Округление
1 2 3 4
Euler
Возможно банковское выбрали из-за меньшего значения погрешности на массиве данных(в среднем округления в обе стороны будут компенсировать друг друга).
JOHN_16
Как бы то ни было, менять функцию round, которая вообще носит фундаментальный характер и имеет историю начатую более чем полвека назад, таким диким способом неправильно, это вводит только лишь путаницу не только в Питоне 2/3, но и в целом в мире программирования.
И что им мешало сделать round_bank() …
py.user.next
она, походу, более точный результат даёт при ошибках округления
вот переход, ревизия

то, что там было, тоже округляло до чётного в случае 0.5; код добавлял Гвидо, а до этого добавления не нашёл ничего вплоть до 90-го года
qa13
Классическое округление, без использования библиотек. Наслаждайтесь
 def rd(x,y=0):
    ''' A classical mathematical rounding by Voznica '''
    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
# Сравните:
print( round(0.49), round(0.51), round(0.5), round(1.5), round(2.5), round(0.15,1))  # 0  1  0  2  2  0.1
print( rd(0.49), rd(0.51), rd(0.5), rd(1.5), rd(2.5), rd(0.15,1))  # 0  1  1  2  3  0.2
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB