¿Por qué los números decimales no se pueden representar exactamente en binario?

Se han publicado varias preguntas al SO sobre la representación en punto flotante. Por ejemplo, el número decimal 0.1 no tiene una representación binaria exacta, por lo que es peligroso usar el operador == para compararlo con otro número de punto flotante. Entiendo los principios detrás de la representación de punto flotante.

Lo que no entiendo es por qué, desde una perspectiva matemática, ¿los números a la derecha del punto decimal son más "especiales" que los de la izquierda?

Por ejemplo, el número 61.0 tiene una representación binaria exacta porque la parte integral de cualquier número siempre es exacta. Pero el número 6.10 no es exacto. Todo lo que hice fue mover el decimal un lugar y, de repente, pasé de Exactopia a Inexactville. Matemáticamente, no debería haber una diferencia intrínseca entre los dos números, son solo números.

Por el contrario, si muevo el decimal un lugar en la otra dirección para producir el número 610, todavía estoy en Exactopia. Puedo seguir yendo en esa dirección (6100, 610000000, 610000000000000) y siguen siendo exactos, exactos, exactos. Pero tan pronto como el decimal cruza algún umbral, los números ya no son exactos.

¿Que esta pasando?

Edición: para aclarar, quiero mantenerme alejado de las discusiones sobre representaciones estándar de la industria, como IEEE, y seguir con lo que creo que es matemáticamente "puro". En base 10, los valores posicionales son:

... 1000  100   10    1   1/10  1/100 ...

En binario, serían:

... 8    4    2    1    1/2  1/4  1/8 ...

Tampoco hay límites arbitrarios en estos números. Las posiciones aumentan indefinidamente a la izquierda ya la derecha.

Respuestas a la pregunta(20)

Su respuesta a la pregunta