точное представление чисел с плавающей запятой в c

void main()
{
    float a = 0.7;

    if (a < 0.7)
        printf("c");
    else
        printf("c++");
} 

В приведенном выше вопросе для 0.7 будет напечатано "c", а для 0.8 - "c ++". Почему?

И как любое число с плавающей запятой представляется в двоичной форме?

В некоторых местах упоминается, что внутренне 0,7 будет сохранено как 0,699997, а 0,8 как 0,8000011. Почему так?

5
задан userv 19 February 2014 в 18:36
поделиться