Я полагаю, что здесь имеет место ошибка округления. Сто раз к x прибавили 0.1, а к y1 - х. Если получилось не 0, а -0,000275, значит, с каждым из этих ста раз была ошибка в среднем на -0,00000275.
0.1 нельзя точно перевести в двоичное число в плавающей точкой. Точность можно повысить, если float заменить на double и убрать суффикс f у числовых констант.