В Arduino переменные типа с плавающей запятой имеют 32-битное значение с плавающей запятой. Таким образом, они имеют точность около 6 или 7 цифр. Дело в числах с плавающей запятой, способ, которым они могут представлять больший диапазон, чем значения, которые они содержат, в том, что они не содержат значения точно.
Если вы хотите работать с точными значениями, вы не можете использовать плавающую точку. Преобразование в целые числа и использование математики с фиксированной точкой.