Эта «ошибка» не является действительной ошибкой. Это происходит от 1/3 == 0,333 [3]. В результате ваш 0,2 - это только завышенное приближение, и вы накапливаете эту ошибку в x. Вот почему в вашем выводе так много цифр. Раунд не позволяет этой неточности накапливаться, чтобы получить такой результат, вам следует использовать функцию round()
. Следующий код округляет число до двух цифр после точки.
x = 50
for i in range(50):
x = round(x - 0.20, 2)
print(x)
Результат - именно тот, который вы ищете
>>> 49.8
>>> 49.6
>>> 49.4
>>> 49.2