Типичная проблема потери точности при операциях с float. Используйте Decimal
– vitidevOct 06 '21 at 12:50
А почему при ручном расчете получается так, а в интерпретаторе получается такое большое число? Это понятно что можно округлить, но вот не знаю с чем это связано(
– ElenaOct 06 '21 at 12:50
1
Связано это с тем что float в двоичном представлении не может быть представлен точно, всегда есть погрешность. И поэтому 1.1 + 2.2 = 3.3000000000000003
– vitidevOct 06 '21 at 12:53
И никого из комментаторов не смутила такая гигантская погрешность? Я вот не поверил, посмотрел сам, получил 1.8699999999999999. Вот это куда больше похоже на правду.
– YaantOct 06 '21 at 15:18
round:n = (3.14+0.3)/2+0.15print(n)print(round(n, 2))– gil9red Oct 06 '21 at 12:55