¿Por qué printf imprime valores incorrectos?

¿Por qué obtengo los valores incorrectos cuando imprimo unint utilizandoprintf("%f\n", myNumber)?

No entiendo por qué se imprime bien con%d, pero no con%f. ¿No debería simplemente agregar ceros adicionales?

int a = 1;
int b = 10;
int c = 100;
int d = 1000;
int e = 10000;

printf("%d %d %d %d %d\n", a, b, c, d, e);   //prints fine
printf("%f %f %f %f %f\n", a, b, c, d, e);   //prints weird stuff

Respuestas a la pregunta(7)

Su respuesta a la pregunta