Это действительно большая проблема. Попробуйте этот код:
print "%.2f" % (round((2*4.4+3*5.6+3*4.4)/8,2),)
Показывает 4,85. Тогда вы делаете:
print "Media = %.1f" % (round((2*4.4+3*5.6+3*4.4)/8,1),)
и показывает 4,8. У вас расчеты от руки точный ответ 4,85, но если вы попробуете:
print "Media = %.20f" % (round((2*4.4+3*5.6+3*4.4)/8,20),)
вы можете видеть правду: точка с плавающей запятой хранится как ближайшая конечная сумма дробей, знаменатели которых имеют степень двойки.