Почему round() округляет 5 по-разному
Почему для двух примеров округление происходит по-разному:
print(round(10.25, 1)) # 10.2
print(round(10.15, 1)) # 10.2
В первом случае округление в меньшую сторону, а во втором случае округление в большую сторону.

Согласно документации среднее значение округляется в сторону четного числа.

У меня в Replit округляет так: 10.05 -> 10.1 10.15 -> 10.2 10.25 -> 10.2 10.35 -> 10.2 10.45 -> 10.4 10.55 -> 10.5 10.65 -> 10.7 10.75 -> 10.8 10.85 -> 10.8 10.95 -> 10.9 11.05 -> 11.0 11.15 -> 11.2 Совсем не согласно документации. Почему?
Это связано с тем, что Python использует метод округления до ближайшего чётного числа (также известный как “банковское округление”).
Вот как это работает:
Если цифра перед отбрасываемой 5 является чётной, то число округляется в меньшую сторону Если цифра перед отбрасываемой 5 является нечётной, то число округляется в большую сторону Поэтому:
10.25 округляется до 10.2 (цифра 2 - чётная, поэтому округляем в меньшую сторону)
10.15 округляется до 10.2 (цифра 1 - нечётная, поэтому округляем в большую сторону)
Это делается для того, чтобы избежать систематической ошибки в большую или меньшую сторону при массовых расчётах. Такой метод округления считается более статистически точным при работе с большими наборами данных.