Точность с плавающей точкой C [дубликат]
Возможный дубликат:
Сравнение с плавающей точкой
У меня проблема с точностью поплавка в C / C ++. Когда я выполняю программу ниже:
#include
int main (void) {
float a = 101.1;
double b = 101.1;
printf ("a: %f\n", a);
printf ("b: %lf\n", b);
return 0;
}
Результат:
a: 101.099998
b: 101.100000
Я считаю, что float должен иметь 32-битный код, поэтому его должно быть достаточно для хранения 101.1. Почему?