В арифметических операциях с плавающей запятой не гарантируется точность результата. Эту неточность вы накапливаете в average.