Я столкнулся с странным поведением функции round()
:
for i in range(1, 15, 2):
n = i / 2
print(n, "=>", round(n))
Этот код печатает:
0.5 => 0
1.5 => 2
2.5 => 2
3.5 => 4
4.5 => 4
5.5 => 6
6.5 => 6
Я ожидал, что плавающие значения будут всегда округлены, но вместо этого округляется до ближайшего четного числа.
Почему такое поведение и какой лучший способ получить правильный результат?
Я попытался использовать fractions
, но результат тот же.