Точность с плавающей точкой 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. Почему?

Ответы на вопрос(6)

Ваш ответ на вопрос