Precisión de punto flotante C [duplicado]
Posible duplicado:
Comparación de punto flotante
Tengo un problema sobre la precisión de flotación en C / C ++. Cuando ejecuto el siguiente programa:
#include <stdio.h>
int main (void) {
float a = 101.1;
double b = 101.1;
printf ("a: %f\n", a);
printf ("b: %lf\n", b);
return 0;
}
Resultado:
a: 101.099998
b: 101.100000
Creo que float debería tener 32 bits, por lo que debería ser suficiente para almacenar 101.1 ¿Por qué?