C precyzja zmiennoprzecinkowa [duplikat]
Możliwy duplikat:
Porównanie zmiennoprzecinkowe
Mam problem z dokładnością float w C / C ++. Kiedy wykonam poniższy program:
#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;
}
Wynik:
a: 101.099998
b: 101.100000
Uważam, że float powinien mieć 32-bit, więc powinien wystarczyć do przechowywania 101.1 Dlaczego?